【发布时间】:2015-08-09 03:32:51
【问题描述】:
我发现这个问题很常见,但我没有找到我要找的东西。也许是因为我想做点别的事情。
所以我目前正在为网络爬虫编写代码,需要比较列表中的对象。 我想做的是遍历列表,找到重复项,当我发现重复项时合并这些。
合并时我想:
- 保持最新/最新对象的信息。
- 如果最新对象的字段为空,则取旧对象字段的值
我认为循环遍历两个对象的属性是最简单的。
我已经尝试了很多使用反射的东西,我所能实现的就是显示一个类的属性名称。我想要的是他们的价值观。
如果可能的话,我会使用这样的循环:
foreach(property prop in myObject)
{
string value = myObject.prop;
//do something
}
这可能吗?还是我错过了什么?
【问题讨论】:
-
需要比较列表中的对象 什么对象?你能控制他们吗?
-
不能使用IComparable接口吗?你真的需要使用反射吗?
-
你知道这些对象是什么,还是它们本质上是动态的?
-
比较和合并这些对象的方式告诉我它们非常相似。为什么不使用接口或通用超类来抽象您要比较/合并的属性?为此使用反射听起来是个非常糟糕的主意。
-
是的,我控制着它们。它们是我创建的类的相同对象。我既不知道如何使用 IComparable 也不知道如何使用超类。你能解释一下吗?
标签: c# class reflection properties