在C#中合并两个列表

ToT*_*oTa 5 c# merge list

我想将具有不同属性的两个列表合并到一个列表中,但在合并它时,我想检查在这个特定的示例中是否存在两个列表中的确切日期,如果有,我想要同时使用两个列表来自该元素的属性,并将它们合并到另一个列表中的一个元素中

清单1:

List<object> r1 = (from x in sp1 select new 
                   { 
                     x.Imported, 
                     x.Period 
                   }).ToList<object>();
Run Code Online (Sandbox Code Playgroud)

L1结果:

在此输入图像描述

清单2:

List<object> r2 = (from x in sp2 select new 
                   { 
                     x.Dissolution, 
                     x.Period 
                   }).ToList<object>();
Run Code Online (Sandbox Code Playgroud)

L2结果:

在此输入图像描述


通缉结果:

在此输入图像描述

现在,这就是我如何合并r1和r2:

 List<object> r3 = new List<object>(r1.Concat(r2));
Run Code Online (Sandbox Code Playgroud)

Faw*_*war 0

创建字典

Dictionary MyDict<String, List<Object>>;

MyDict[object.Perdiod].Add(object);
Run Code Online (Sandbox Code Playgroud)

对于每个日期,字典中都会有一个条目,并且它将在此“日期索引”保留该时期发生的所有对象的列表。

IMO 最简单的方法,不需要对添加的每个条目进行 O(n) 检查

只要确保添加数据时它不为 null IE

MyDict[Object.Period] != null
Run Code Online (Sandbox Code Playgroud)

另外,Nikhil Agrawal 是否说过我不会使用 Object 来保存事物列表……这感觉不对并且容易出错。您可能想要声明一个抽象类,它将像接口一样使用,或者只是这些项目(对象)的接口。