从复杂类型列表中提取字符串列表

时间:2017-11-17 19:00:25

标签: c#

我如何从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

谢谢。

2 个答案:

答案 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();