我正在使用VS 2008。
我有一个小用户控件,其参数的类型为List<String>
。我有一个对象列表(称为MyObjectList
,类型为List<MyObject>
),其定义包括一个String成员(称之为myString
)。
我希望得到一个List<String>
,其中包含来自myString
的所有MyObjectList
个字符串。
当然,我可以编写一个循环遍历MyObjectList
的小循环,将每个myString
值添加到List<String>
对象。但我正努力做到尽我所能。
随着lambda表达式的出现,我认为必须有更好的方法来做到这一点。在那儿?如果是这样,怎么样? VS 2012中的答案是否有所不同?
答案 0 :(得分:4)
假设您的列表是List<MyObject>
且该类MyObject
具有属性MyString
,您可以使用LINQ和lambda来执行此操作:
var listOfStrings = myObjectList.Select(o => o.MyString).ToList();
这适用于任何面向.NET 3.0或更高版本的程序集; VS的版本并不重要。