转换List(of object)到List(of string)
有没有办法转换List(of Object)
到List(of String)
在c#或vb.net没有迭代所有的项目? (幕后的迭代很好 – 我只是想简洁的代码)
更新:最好的方法可能只是做一个新的select
myList.Select(function(i) i.ToString())
要么
myList.Select(i => i.ToString());
没有迭代来build立一个新的列表是不可能的。 您可以将该列表包装在实现IList的容器中。
你可以使用LINQ从一个对象列表中得到一个懒惰的IEnumerable<string>
版本,如下所示:
var stringList = myList.OfType<string>();
这适用于所有types。
List<object> objects = new List<object>(); List<string> strings = objects.Select(s => (string)s).ToList();
如果您想更好地控制转换的发生方式,可以使用ConvertAll:
var stringList = myList.ConvertAll(obj => obj.SomeToStringMethod());
你的意思是这样吗?
List<object> objects = new List<object>(); var strings = (from o in objects select o.ToString()).ToList();
否 – 如果要转换列表中的所有元素,则必须以某种方式触摸该列表中的所有元素。
你可以用不同的方式(foreach()……或者.ConvertAll()或者其他)来指定/写入迭代,但是到最后,这种或者那种方式,一些代码会遍历每一个元素并将其转换。
渣子
你可以在List(of object)构build的时候进行string转换吗? 这将是避免List(of object)创build后枚举整个列表的唯一方法。