无法合并2个列表并形成带有两年标记c#linq的主列表
我有一个清单,清单1无法合并2个列表并形成带有两年标记c#linq的主列表,c#,list,C#,List,我有一个清单,清单1 CurrentYearDate Marks1 LastYearDate Marks2 09/01/2012 200 09/02/2012 10 09/03/2012 30 09/04/2012 40 CurrentYearDate Marks1 LastYearDate Marks2 09/01/2
CurrentYearDate Marks1 LastYearDate Marks2
09/01/2012 200
09/02/2012 10
09/03/2012 30
09/04/2012 40
CurrentYearDate Marks1 LastYearDate Marks2
09/01/2012 200 9/01/2011 10
09/02/2012 10 09/02/2011 10
09/03/2012 30 09/03/2011 30
09/04/2012 40 09/04/2011 40
我有一张清单和清单2
CurrentYearDate Marks1 LastYearDate Marks2
9/01/2011 10
09/02/2011 10
09/03/2011 30
09/04/2011 40
我需要将这两个列表合并到一起
我有一个清单,清单1
CurrentYearDate Marks1 LastYearDate Marks2
09/01/2012 200
09/02/2012 10
09/03/2012 30
09/04/2012 40
CurrentYearDate Marks1 LastYearDate Marks2
09/01/2012 200 9/01/2011 10
09/02/2012 10 09/02/2011 10
09/03/2012 30 09/03/2011 30
09/04/2012 40 09/04/2011 40
如果索引按照您的示例排列,使每个列表中的第一项彼此对应,那么您可以使用
Zip
:
var mergedLists = list1.Zip(list2, (a,b)=> new YourClassName()
{
CurrentYearDate = a.CurrentYearDate,
Marks1 = a.Marks1,
LastYearDate = b.LastYearDate,
Marks2 = b.Mark2,
});
如果索引不对应,则需要使用Join
:
var joinedLists = list1.Join(list2, curr => curr.CurrentYearDate, last => last.LastYearDate.AddYears(1), (a,b)=> new YourClassName()
{
CurrentYearDate = a.CurrentYearDate,
Marks1 = a.Marks1,
LastYearDate = b.LastYearDate,
Marks2 = b.Mark2,
});