【发布时间】:2014-07-01 22:26:39
【问题描述】:
List<objects> MyObjects = GetobjectsfromList(otherlist);
我正在使用的 MyObjects 列表具有多个属性
String name;
String locationInfo;
String otherObjectName;
DateTime date1;
DateTime date2;
(等等)
MyObjects 中包含的内容如下:
Obj1 (name1, location1, otherobjectname1, date1, date2)
Obj2 (name2, location2, otherobjectname1, date4, date7)
Obj3 (name3, location3, otherobjectname1, date6, date9)
Obj4 (name4, location6, otherobjectname2, date1, date2)
Obj5 (name5, location7, otherobjectname2, date1, date2)
(总共大约 2600 条记录,这些属性使每条记录都是唯一的)
基本上所有的 ObJ 对象都至少有一个属性,使它们在集合中是唯一的。因此,使用我尝试过的任何 groupby、distinct 或任何其他 linq .where 子句总是能让我恢复整个集合,因为每条记录都是真正独一无二的。
我需要的是从整个对象集合中获取每个对象中的一个,以获得对象上的不同属性……即另一个对象名称。看看一个有 3 条记录,另一个有 2 条记录(我已经从这些 otherobjectname 制作了一个哈希集,只有 975 条记录)。
我需要从这个集合中得到的只是一个新的 MyObjects 集合,其中每个对象名我只有一个,我不在乎它是哪条记录。
所以返回包含这些的新列表:
Obj1 (name1, location1, otherobjectname1, date1, date2) (I do not care which of the 3)
Obj4 (name4, location6, otherobjectname2, date1, date2) (I do not care which of the 2)
对于集合中每个唯一的 otherobjectname 以此类推
对象上的属性之一只有一个唯一记录 有没有办法做到这一点?抱歉,我不能真正发布示例代码,由于安全规则,我尝试在不使用任何特定内容的情况下尽我所能写出来。
【问题讨论】: