我如何从List<ComplexObject>
获得List<string>
,假设ComplexObject有两个属性:类型为string的prop1和类型为int的prop2。我有兴趣提取List<string>
(prop1列表)。
举一个例子,也许它更清楚。
想象一下,你有List<Country>
,其中Country是具有Id和Name的复杂对象。我有兴趣从countryList中提取一个名称列表,其中包含所有名称。
我知道我可以这样做:
List<string> nameList = new List<string>();
foreach (var country in countryList)
{
nameList.Add(country.Name);
}
...但我想知道是否有更简单快捷的方法从countryList中提取nameList。也许与lambda或其他什么。
并且该字符串列表也可以轻松转换为DataTable
?
谢谢。
答案 0 :(得分:5)
这是LINQ选择的常见用例,它将结果枚举转换为列表。这比做起来容易做起:
var nameList = countryList.Select(c => c.Name).ToList();
转换为DataTable的方式并不方便。 Here's an answer about doing那个。
答案 1 :(得分:1)
使用LINQ:
var names = countryList.Select(c => c.Name).ToList();