C# 如何使用String变量通过Extention Select方法获取集合中项目的特定列表

C# 如何使用String变量通过Extention Select方法获取集合中项目的特定列表,c#,reflection,lambda,extension-methods,C#,Reflection,Lambda,Extension Methods,我有一节这样的课 class Processing { public string Region { get; set; } public Car _car {get;set;} public double Kilometer { get; set; } } 然后我创建了一个处理列表 List<Processing> process=new List<Processing>() 但是我想用lambda表达式作为动态的,像这样 string property="Regi

我有一节这样的课

class Processing
{
public string Region { get; set; }
public Car _car {get;set;}
public double Kilometer { get; set; }
}
然后我创建了一个处理列表

List<Processing> process=new List<Processing>()
但是我想用lambda表达式作为动态的,像这样

string property="Region"; 
var result=process.Select(a=>property) 

是否有任何方法可以通过使用列表中属性的字符串名称来获取该属性的数据。

您可以为此使用反射

string property="Region"; 
var prop = typeof(Processing).GetProperty(property);
var result=process.Select(a=>prop.GetValue(a, null));

Dmytro,我使用了上面的代码。但结果不是我想要的。Region存储的是城市名,比如{stenbul,Ankara,İzmir}。但是结果返回值{5,6,7}等。您错过了
GetValue
的第二个参数,该参数应作为
null
@AykarKr>传入。如果使用正确的代码(提供第二个参数为
null
),则应该得到正确的结果。对不起,对于.NET 4.0及以下版本,您确实应该发送索引器值(本例中为null)作为GetValue方法的第二个参数。我已经修复了exampleDmytro,你们上一篇文章仍然给出了同样的错误。网格上有数字
string property="Region"; 
var prop = typeof(Processing).GetProperty(property);
var result=process.Select(a=>prop.GetValue(a, null));