使用字符串从类中获取字段
本文关键字:获取 字段 字符串 | 更新日期: 2023-09-27 18:21:51
public class Class{
public string First{get;set;}
public string Second{get;set;}
}
这是我的简单课程。然后我用这个类创建一个列表。我想使用我的变量字符串从此类中获取字段,例如:
var myRecord = new List<class>();
// add...
string myString = "Second";
var somethinf = myRecord.Where(i => i.myString == something)
有一种方法可以从myString
中获取此字段Second
您可以使用反射来完成此操作:
var somethinf = myRecord.Where(prop => ((string)typeof(Class).GetProperty("Second").GetValue(prop)) == something);
请看这个小提琴。
为了避免反思,更简单的方法可能是让你的类包装一个字典:
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<Class>();
// ...
string variableString = "Second", valueString = "Foo";
var results = myRecords.Where(x => x[variableString] == valueString);