我已经搜索过并且已经接近了,但我无法完全理解下一步需要做什么。所以我有一个函数,它接受我的对象和一个字符串。
该字符串的格式为“property=value”;所以我将 = 符号处的字符串拆分为 2 个字符串,prop 和 value。现在我想将对象中的相同属性与字符串进行比较。所以我有这样的事情:
澄清编辑:我想 tostring() 会起作用,我想我所追求的是相反的。因为实际的属性值类型可能是 bool、datetime、int 或 string(可能还有其他,但没有自定义对象),所以我想我需要以某种方式将值转换或转换为正确的类型并进行比较。
第 2 次澄清。对于那些询问的人,上下文是我正在尝试创建一个简单的用户可定义规则系统来评估数据。由于数据是我的人类输入的,我最大的担心是其他类型的字符串表示我不会以与它们实际上是那些类型相同的方式进行比较,例如如果它们是十进制类型,则 1.00 应该 = 1.0,但如果它们是字符串则不会类型。
private static bool evaluateCriteria(string s, Client o){ bool evaluation = false; string prop = s.Split('=')[0]; string value = s.Split('=')[1]; var propvalue = (o).GetType().GetProperty(prop).GetValue(o, null); //ok so not I want to compare value to propvalue, but don't know how // evaluation = (value == propvalue); return evaluation; }