Lambda表达式从对象列表中获取成员列表?

时间:2012-10-10 19:04:47

标签: c# lambda expression

我正在使用VS 2008。

我有一个小用户控件,其参数的类型为List<String>。我有一个对象列表(称为MyObjectList,类型为List<MyObject>),其定义包括一个String成员(称之为myString)。

我希望得到一个List<String>,其中包含来自myString的所有MyObjectList个字符串。

当然,我可以编写一个循环遍历MyObjectList的小循环,将每个myString值添加到List<String>对象。但我正努力做到尽我所能。

随着lambda表达式的出现,我认为必须有更好的方法来做到这一点。在那儿?如果是这样,怎么样? VS 2012中的答案是否有所不同?

1 个答案:

答案 0 :(得分:4)

假设您的列表是List<MyObject>且该类MyObject具有属性MyString,您可以使用LINQ和lambda来执行此操作:

var listOfStrings = myObjectList.Select(o => o.MyString).ToList();

这适用于任何面向.NET 3.0或更高版本的程序集; VS的版本并不重要。