C# 使用字符串从类中获取字段
这是我的简单课。然后我用这个类创建一个列表。我想使用变量字符串从此类获取字段,例如:C# 使用字符串从类中获取字段,c#,linq,C#,Linq,这是我的简单课。然后我用这个类创建一个列表。我想使用变量字符串从此类获取字段,例如: public class Class{ public string First{get;set;} public string Second{get;set;} } var myRecord=newlist(); //加上。。。 字符串myString=“Second”; var somethinf=myRecord.Where(i=>i.myString==something) 有一种方法
public class Class{
public string First{get;set;}
public string Second{get;set;}
}
var myRecord=newlist();
//加上。。。
字符串myString=“Second”;
var somethinf=myRecord.Where(i=>i.myString==something)
有一种方法可以从
myString
获取此字段Second
,您可以利用反射来完成此操作:
var myRecord = new List<class>();
// add...
string myString = "Second";
var somethinf = myRecord.Where(i => i.myString == something)
请看这个。避免反射,一个更简单的方法可能是让类包装成字典:
var somethinf = myRecord.Where(prop => ((string)typeof(Class).GetProperty("Second").GetValue(prop)) == something);
公共类
{
私人词典;
公共类()
{
_字典=新字典()
{
{“第一”,“Foo”},
{“第二”,“酒吧”}
};
}
公共字符串此[字符串键]
{
获取{return _dictionary[key];}
设置{u字典[key]=value;}
}
}
然后,您可以使用以下方法获取所需的数据:
public class Class
{
private Dictionary<string, string> _dictionary;
public Class()
{
_dictionary = new Dictionary<string, string>()
{
{ "First", "Foo" },
{ "Second", "Bar" }
};
}
public string this[string key]
{
get { return _dictionary[key]; }
set { _dictionary[key] = value; }
}
}
var myRecords=new List();
// ...
字符串变量string=“Second”,valueString=“Foo”;
var results=myRecords.Where(x=>x[variableString]==valueString);
这应该是可行的:var somethinf=myRecord.Where(i=>((string)typeof(Class).GetProperty(“Second”).GetValue(i))==something)代码>
var myRecords = new List<Class>();
// ...
string variableString = "Second", valueString = "Foo";
var results = myRecords.Where(x => x[variableString] == valueString);