C# 如何设置列表<;未知类型>;到列表<;对象>;

C# 如何设置列表<;未知类型>;到列表<;对象>;,c#,list,collections,C#,List,Collections,我有一个大问题,我有一个函数。这个函数有一个对象类型的参数,所以我可以接收一个简单的对象或一个未知类型的列表 如果我的对象参数是列表,我需要将他的值设置为list。我不知道怎么做 例如: var m_list = new List<String>(){"a","b","c"}; MyFunction(m_list); var m_list=newlist(){“a”、“b”、“c”}; MyFunction(m_列表); 功能 private void MyFunction(Ob

我有一个大问题,我有一个函数。这个函数有一个对象类型的参数,所以我可以接收一个简单的对象或一个未知类型的列表

如果我的对象参数是列表,我需要将他的值设置为
list
。我不知道怎么做

例如:

var m_list = new List<String>(){"a","b","c"};
MyFunction(m_list);
var m_list=newlist(){“a”、“b”、“c”};
MyFunction(m_列表);
功能

private void MyFunction(Object parameter){
    List<Object> myObjectsList= new List<Object>;//I need set the values of parameter to this object
}
private void MyFunction(对象参数){
List myObjectsList=new List;//我需要设置这个对象的参数值
}

将其强制转换到非通用的
IEnumerable
界面(或
ICollection
IList
):

然后,您可以不使用泛型直接循环这些项,或者使用LINQ将它们复制到
列表中

myObjectsList =m_list.Cast<object>().ToList()
myObjectsList=m_list.Cast().ToList()

真正的问题是,为什么将列表作为
对象传递到方法中
,只是为了将对象强制转换为
列表
?至少将参数更改为
IList
;您可能会因为
IEnumerable
想要使用“object”的任何原因而逍遥法外?在某种程度上违背了泛型的目的。
myObjectsList =m_list.Cast<object>().ToList()