查找对象的属性并获取其值 - C#
本文关键字:获取 对象 属性 查找 | 更新日期: 2023-09-27 18:32:23
>说有一个类,比如
class phones
{
public int Id {get; set;}
public string Name {get; set;}
public string Color {get; set;}
public decimal Price {get; set;}
}
List<phones> myList = GetData();
//list is filled with objects
现在,我知道了 Id 和对象属性的确切名称,并希望从匹配对象中获取值。
private string GetValue(int pid, string featurename)
{
string val = "";
foreach(phones obj in myList)
{
if(obj.Id == pid)
{
//if featurename is 'Name', it should be
//val = obj.Name;
//if featurename is 'Price', it should return
//val = obj.Price;
break;
}
}
return val;
}
这可能吗。请指教。
使用这个:
Phones phones= new Phones();
string returnValue = phones.GetType().GetProperty(featureName).GetValue(phones, null).ToString();
此外,请记住为输入featureName
和错误处理添加验证。
这个怎么样:
foreach(phones obj in myList)
{
if(obj.Id == pid)
{
if (featurename == "Name")
{
return obj.Name;
}
else if (featurename == "Price")
{
return obj.Price.ToString();
}
else
{
return string.Empty;
}
}
}
我认为您想要具有给定特征名称的属性并使用它你可以像这样使用 lambda 表达式
或
像这样使用属性信息
foreach (PropertyInfo p in typeof(ClassName).GetProperties())
{
string propertyName = p.Name;
//....
}