如何将 2 个不同的列表加入 1 个列表 [关闭]
Posted
技术标签:
【中文标题】如何将 2 个不同的列表加入 1 个列表 [关闭]【英文标题】:how to join 2 different list to 1 list [closed] 【发布时间】:2021-10-04 03:47:11 【问题描述】:如何使用 linq 将 2 个列表加入到新列表中
public class list1
public string ID get; set;
public class list2
public string ID get; set;
public string Member get; set;
public class result get; set;
public string ID get; set;
public List<list2> list2s get; set;
输入
list1 = a, b, c, d
list2 = a,1, a,2, a,3, b,1, b,2, c,1, d,1
输出
结果 = a,1,2,3, b,1,2, c,1, d,1
【问题讨论】:
你为什么需要加入他们?列表 2 是列表 1 的超集,因此您可以简单地返回列表 2。(也许您的示例需要改进以更好地显示问题)。 仅供参考,list
对于不是列表的东西来说是一个糟糕的名字。您的班级名为list1
,但不是List
。然后你也说list1 = ...
,但list1
是一个类,所以它不等于任何东西,也不能被分配任何东西。你是在暗示你有一个名为list1
的List<list1>
吗?
您的要求不完整。如果list1
也包含e
,但list2 中没有e
,您的结果中是否需要e
? “没有任何数字的e”?如果list2包含f, 3
,但list1中没有f呢?
对不起,我的问题不清楚,我只是尝试将列表加入另一个列表中,其中包含行中的数组
【参考方案1】:
您可以使用与此代码相同的连接:
var l1 = new List<list1>()
new list1() ID = "a" ,
new list1() ID = "b" ,
new list1() ID = "c" ,
new list1() ID = "d"
;
var l2 = new List<list2>()
new list2() ID = "a" ,Member = "1" ,
new list2() ID = "a", Member = "2" ,
new list2() ID = "a", Member = "3" ,
new list2() ID = "b", Member = "1" ,
new list2() ID = "b", Member = "2" ,
new list2() ID = "c", Member = "1" ,
new list2() ID = "d", Member = "d"
;
var x = from l in l1
join ll in l2 on l.ID equals ll.ID
select new result
ID= ll.ID,
list2s= l2.Where(d => d.ID == ll.ID).ToList()
;
但您可以使用其他解决方案
【讨论】:
我尝试在加入后进行分组,但它不起作用 var x = from l in l1 join ll in l2 on l.ITEMID equals ll.ITEMID group l by l.ITEMID into g select new ITEMID = g.ITEMID, testModel2s = l2.Where(d => d.ITEMID == ll.ITEMID).ToList() ;但是在 x 之后分组得到新的选择列表它的工作 x = x.GroupBy(a => a.ITEMID).Select(a => a.FirstOrDefault()).ToList();非常感谢以上是关于如何将 2 个不同的列表加入 1 个列表 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章