2013-12-11 49 views
1

目前,我有一个List<object>这样的:List<USER>检索列表<Object>至列表<String>

User类中,我有名为UserName的列。

我想检索此列到List<string>

如何可以在不使用foreachList<USER>工作?

谢谢。

+0

看到这个:http://stackoverflow.com/questions/7187409/c-linq-apply-a-mapping-function-to-each-element-在可枚举 –

回答

9

你可以使用LINQ:

List<string> userNames = users.Select(u => u.UserName).ToList(); 
+0

重要的是要注意的是,在内部,这仍然是用foreach循环来解决......但是再一次,没有办法解决这个问题。 – Tobberoth

+0

@Tobberoth:是的,当然LINQ不能表演魔术;)但它可以提高可读性,这比几毫秒更重要。 –

+0

woa,非常感谢Tim。它节省了我很多时间。 – user3011414

1

除了蒂姆Schmelter后:

铸造IEnumerable<object>IEnumerable<USER>你可以使用Cast<T>OfType<T>方法。

这可以写成如下:

var userNames = users.Cast<USER>.Select(u => u.UserName).ToList();