接口变量能否给普通对象赋值?[如IList 接口变量赋值给一个数组?]解决思路

接口变量能否给普通对象赋值?[如IList 接口变量赋值给一个数组?]
比如,   我要写一个函数返回一个IList   接口变量,   但是调用函数端用一个数组来接收,   应该怎么操作?

具体示例代码:
collections.generic.IList <T>   func(string[]   arr)
{
  collections.generic.IList <T>   list=arr;
  return   list;
}

string[]   arr=new   string[1];
string[]   arr2=func(arr);   //这一句.

谢谢各位~~



------解决方案--------------------
可以有如下的转换:

List <string> list=func(var);
string[] strArray = list.ToArray();