合并两个列表以获取第三个列表,两个列表具有两个公共且一个不同的列c#

时间:2019-01-03 09:13:28

标签: c# asp.net list merge

我有两个列表,

List <AgencyCount> Agency= AgencyList.ToList();
List<IndCount> Ind = individualList.ToList();

想要将其合并到第三个列表中,

List<complain> list = new List<complain>();

代理商列表中的列,

CityId
CityNM
Acount

“ Ind”列表中的列,

CityId
CityNM
Icount

第三列表正在使用

的类类型的对象
CityId
CityNM
Acount
Icount

“代理商”和“工业”列表中前两列的值相同。

结果列表获得的前两列的值相同,然后获得两列的第三列,如上所示。

2 个答案:

答案 0 :(得分:0)

这里是一个例子。如您所说,AgencyList和IndividualList具有CityId和city_NM作为公用值,我假设两个列表的联接都在这些字段中 linq查询返回匿名类型,该类型由两个列表中的字段组成。您可以返回一个简单的对象,只需创建一个新的private void ServiceCaptureImage() { try{ while(true) { if(bdata[0]==false) { var task1 = Task.Factory.StartNew(() => ALPRdetect()); var task2 = Task.Factory.StartNew(() => DICcapture()); Task.WhenAll(task1, task2); } } } catch (Exception ex){ MessageBox.show(ex.message) } } 并在linq中执行select case when datepart(dw,getdate()) =7 or datepart(dw,getdate()) =6 or datepart(dw,getdate()) =5 or datepart(dw,getdate()) =4 then DATEADD(day, 3-datepart(dw,getdate()) , getdate()) else DATEADD(day, -4-datepart(dw,getdate()) , getdate()) end;

根据@tsahi Asher的评论更新

ResultClass

答案 1 :(得分:0)

@mnieto的答案对于原始问题是正确的,该问题已被完全重写(请不要这样做,它会导致回答诸如此类的不存在的问题)。对于当前版本的问题,答案非常相似,只是条件不同join

var qry = from a in Agency
          join i in Ind
          on new { a.CityId, a.CityNM } equals new { i.CityId, i.CityNM }
          select new {
              a.CityId,
              a.CityNM,
              a.Acount,
              i.Icount
          };
return qry.ToList();