C# 将列表转换为列表<;字符串>;

C# 将列表转换为列表<;字符串>;,c#,linq,list,C#,Linq,List,我有以下问题: public class AwesomeClass { public string SomethingCool { get; set; } public string SomethingUseless { get; set; } } 我有一个包含许多属性的类,我需要将这些类的列表转换为字符串列表,其中字符串表示类中的属性 List<AwesomeClass> stuff = new List<AwesomeClass>(); //Fil

我有以下问题:

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 stuff=newlist();
//在材料清单上填上一些东西。
List theCoolStuff=//仅获取AwesomeClass列表中的SomethingCool属性。
我之所以需要将其转换为字符串列表,是因为我有一个将列表作为参数的方法,但SomethingCool属性包含此列表所需的数据


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

您可以简单地使用
选择

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

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

注意,您甚至可以:

foreach (AwesomeClass member in stuff)
{
   theCoolStuff.Add(member. SomethingCool)
}
List<string> theCoolStuff = stuff.ConvertAll(x => x.SomethingCool);
List theCoolStuff=stuff.ConvertAll(x=>x.somethingtool);

因为
列表
有一个特殊的“转换”方法:-)

值得补充的是,这实际上是一个投影(或映射),而不是一个转换操作。@MikeEason-你可以通过接受它来欣赏答案。@RahulSingh我不得不等待几分钟才能接受答案。现在完成了。