将List转换为List <string> </string>

时间:2015-02-19 12:35:54

标签: c# linq list

我有以下问题:

public class AwesomeClass
{
    public string SomethingCool { get; set; }
    public string SomethingUseless { get; set; }
}

我有一个包含许多属性的类,我需要将这些类的列表转换为字符串列表,其中字符串表示类中的属性。

List<AwesomeClass> stuff = new List<AwesomeClass>();

//Fill the stuff list with some tings.

List<string> theCoolStuff = //Get only the SomethingCool property in the AwesomeClass list.

我之所以需要将其转换为字符串列表是因为我有一个方法将List作为参数,但SomethingCool属性包含了此列表所需的数据。

注意:我可以在列表中使用 foreach 循环并填充字符串列表,但我正在寻找更优雅的方法,也许LINQ可以为我做这个?

3 个答案:

答案 0 :(得分:13)

您只需使用Select

即可
var theCoolStuff = stuff.Select(x => x.SomethingCool).ToList();

Select所做的是投影,它投影每个项目并将它们转换(不转换)为另一种形式。

答案 1 :(得分:3)

请注意,您甚至可以:

List<string> theCoolStuff = stuff.ConvertAll(x => x.SomethingCool);

因为List<T>有一种特殊的“转化”方法: - )

答案 2 :(得分:0)

foreach (AwesomeClass member in stuff)
{
   theCoolStuff.Add(member. SomethingCool)
}