目前,我有一个List<object>
这样的:List<USER>
。检索列表<Object>至列表<String>
在User
类中,我有名为UserName
的列。
我想检索此列到List<string>
。
如何可以在不使用foreach
为List<USER>
工作?
谢谢。
目前,我有一个List<object>
这样的:List<USER>
。检索列表<Object>至列表<String>
在User
类中,我有名为UserName
的列。
我想检索此列到List<string>
。
如何可以在不使用foreach
为List<USER>
工作?
谢谢。
你可以使用LINQ:
List<string> userNames = users.Select(u => u.UserName).ToList();
重要的是要注意的是,在内部,这仍然是用foreach循环来解决......但是再一次,没有办法解决这个问题。 – Tobberoth
@Tobberoth:是的,当然LINQ不能表演魔术;)但它可以提高可读性,这比几毫秒更重要。 –
woa,非常感谢Tim。它节省了我很多时间。 – user3011414
除了蒂姆Schmelter后:
铸造IEnumerable<object>
到IEnumerable<USER>
你可以使用Cast<T>
或OfType<T>
方法。
这可以写成如下:
var userNames = users.Cast<USER>.Select(u => u.UserName).ToList();
看到这个:http://stackoverflow.com/questions/7187409/c-linq-apply-a-mapping-function-to-each-element-在可枚举 –