我有一个名为'Account'的对象和以下代码:
Account objAcc = new Account();
objAcc.Name = "Test";
正如预期的那样,上述工作正常。我现在有一个值列表如下:
string props = "Name,Address,Telephone";
现在,我想要做的是查看该列表中是否存在“名称”。我只有使用的对象(硬编码case语句等不可能,因为对象是动态的),所以从objAcc.Name,我不知何故需要从中得到“Name”,然后看看它是否在列表。
在此先感谢,我希望它足够清楚,
戴夫
答案 0 :(得分:2)
你可以使用反射:
var properties = objAcc.GetType().GetProperties();
foreach(var property in properties)
{
if(props.Contains(property.Name))
{
//Do you stuff
}
}
答案 1 :(得分:1)
string test = objAcc.GetType().GetProperty("Name") == null ? "" : objAcc.GetType().GetProperty("Name").Name;
bool result = "Name,Address,Telephone".Split(',').Contains(test);
如果您愿意,可以使用以下方法:
public bool PropertyExists<T>(string propertyName, IEnumerable<string> propertyList,T obj)
{
string test = obj.GetType().GetProperty(propertyName) == null ? "" : obj.GetType().GetProperty(propertyName).Name;
bool result = propertyList.Contains(test);
return result;
}
Giannis