将对象列表转换为对象属性之一的数组
假设我有以下课程:
public class ConfigItemType { public string Name { get; set; } public double SomeOtherThing { get; set; } }  然后我列出以下类( List<ConfigItemType> MyList ) 
现在我有一个具有以下签名的方法:
 void AggregateValues(string someUnrelatedValue, params string[] listGoesHere) 
 我怎么能适合listGoesHere到listGoesHere使用ConfigItemType.Name的值作为paramsstring数组? 
 我相当肯定Linq可以做到这一点….但MyList没有select方法(这是我会用)。 
你正在寻找
 MyList.Select(x=>x.Name).ToArray(); 
 由于Select是扩展方法,因此请确保通过添加a来添加该名称空间 
 using System.Linq 
到您的文件 – 然后它会显示与智能感知。
我相当肯定Linq可以做到这一点….但MyList没有select方法(这是我会用)。
是的,LINQ可以做到这一点。 这只是:
 MyList.Select(x => x.Name).ToArray(); 
 最有可能的问题是你没有对System.Core的引用,或者你缺lessSystem.Linq的using指令。 
这也应该工作:
 AggregateValues("hello", MyList.ConvertAll(c => c.Name).ToArray()) 
对于.NET 2.0的所有人,像我一样,尝试以下方法(适用于OP中的示例):
 ConfigItemList.ConvertAll<string>(delegate (ConfigItemType ci) { return ci.Name; }).ToArray(); 
ConfigItemList是你的列表variables。