2012-03-21 183 views

回答

4
var oList = (IList<object>)sList.Cast<object>().ToList(); 
1
IList<string> s = new List<string>() ; 
    IList<object> o = new List<object>(); 
    foreach (string x in o) 
     s.Add(x); 
+0

既然你预先知道尺寸,你应该通过指定其初始大小创建新的列表,以避免调整:'新名单(s.Count)'。另一种方法是使用构造函数public list( \t IEnumerable collection )'like this:'new List (s.Cast ())' – 2017-05-17 14:22:31

1

下应该这样做:

IList<String> strings = new List<String> { "a", "b", }; 
IList<Object> objects = strings.Cast<Object>().ToList(); 

您可以通过拨打测试中LinqPad结果:objects.Dump();

0
stringList.Select(x => (object)x).ToList(); 
0

这正是Lambda expressions是。 您可以使用简单的Lambda表达式进行转换。只要你在.NET 2.0或以上版本。 如:

stringList.Select(x => (object)x).ToList(); 
相关问题