目前,我有一個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-在可枚舉 –