【发布时间】:2010-03-07 13:38:41
【问题描述】:
我有一种情况,我正在从 Excel 加载一个非常非规范化的记录集。我拉入每一行并一次创建一个对象。每行可以包含一个公司和/或一个客户。
我的问题是多行可能有相同的对象,所以我可能已经创建了它。我做一个比较,看看它是否已经在列表中。如果是这样,我需要合并这两个对象以确保我没有从第二行获得任何新信息。
所以:
company - client - address - phone
----------------------------------------
mycompany - - myaddress -
mycompnay - myclient - - myphone
所以第一行将创建一个地址为“myaddress”的公司对象。 第二行将创建另一个公司对象(根据我的规则,它是同一家公司,因为名称相同),这也有一个客户参考和一个电话号码。
所以我会知道它们是相同的,但需要确保所有数据都合并到一个对象中。
目前,我正在创建一个实用程序类,它接受两个对象(一个是主要对象,另一个是要合并的对象,因此如果发生冲突,则一个具有优先级),它会遍历每个变量并在以下情况下分配值有的。这有点像样板,我希望可能有一些实用程序可以用来为我做手动工作。
该示例已被简化,因为还有一些其他变量,一些基本类型和其他更复杂的项目。
【问题讨论】:
-
你确定总是有最多 2 个对象需要合并吗?如果相同的列/属性被定义两次会发生什么?忽略一个听起来很危险!?
-
他们这样我正在迭代我的收藏,同时我会在找到的每个匹配项中合并。理论上,集合中可能有多个匹配项,但每次合并都会一次完成一个。如果用户输入了错误的数据,那么我不得不因为多个字段而失去一些价值,我无论如何都看不到。
标签: c#