我发现这个问题很常见,但我找不到我要找的东西。也许'因为我想做别的事。
所以我目前正在编写一个webcrawler,需要比较列表中的对象。 我想要做的是循环遍历列表,找到重复项,当我发现重复项合并这些。
合并时我想:
- 保留最新/最新对象的信息。
- 如果最新对象的字段为空,则取旧对象字段的值
我认为循环浏览两个对象的属性是最简单的。
我已经尝试了很多使用反射的东西,我所能达到的只是显示一个类的属性名称。我想要的只是他们的价值观。
如果可能,我会使用这样的循环:
foreach(property prop in myObject)
{
string value = myObject.prop;
//do something
}
这可能吗?或者我错过了什么?
答案 0 :(得分:10)
类似的东西:
object obj = new object();
PropertyInfo[] properties = obj.GetType().GetProperties();
foreach (var p in properties)
{
var myVal = p.GetValue(obj);
}
请注意,您需要分配对象并将其传递给PropertyInfo。
答案 1 :(得分:0)
为了使用foreach循环,您需要使用<dictionary>
,这正是您需要的。将您的班级存储在<dictionary>
列表中,给它T键和T值并循环通过该班级。通过这种方式,您可以更轻松地跟踪班级并维护所需的过滤器。