我想将具有不同属性的两个列表合并到一个列表中,但在合并它时,我想检查在这个特定的示例中是否存在两个列表中的确切日期,如果有,我想要同时使用两个列表来自该元素的属性,并将它们合并到另一个列表中的一个元素中
清单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)
创建字典
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 来保存事物列表……这感觉不对并且容易出错。您可能想要声明一个抽象类,它将像接口一样使用,或者只是这些项目(对象)的接口。