如何将 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 是一个类,所以它不等于任何东西,也不能被分配任何东西。你是在暗示你有一个名为list1List&lt;list1&gt; 吗? 您的要求不完整。如果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 个列表 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何加入不同的属性对象集合

如何连接2个列表[关闭]

将两个选项按钮与单个组合框链接,用于不同的行源[关闭]

如何在页面上居中 3 个 <ul> 列表? [关闭]

将 2 个不同对象的列表合并为一个组合对象

python - 如何使用循环将不同的随机数输入到列表中?