两个列表的非标准连接

本文关键字:非标准 连接 列表 两个 | 更新日期: 2023-09-27 18:21:34

我有两个列表:list1list2。我希望以不影响list1中的值的方式加入列表,即使它包含重复的值。但是,在附加list2中的值时,不应删除重复的值。

我尝试过Union,它将区分所有值,并消除我在list1中重复的值。

例如

list1 = [a, b, c, c, d, e] 
list2 = [a,c,f,g] 
my required solution 
list3=[a, b, c, c, d, e, f, g] 

两个列表的非标准连接

var MyList = List1.Concat(List2.Except(List1).ToList());
var list3 = list1.ToList();
foreach (var val in list2)
{
    if (!list3.Contains(val))
        list3.Add(val);
}

这将为您提供一个包含list1和list2中所有值的新列表。

您可能想要使用类似的东西

var list1 = new List<int> {1, 2, 3, 3}; 
var list2 = new List<int> {1, 2, 3, 4, 5, 3};
var list3 = list1.Concat(list2.Except(list1)); // 1, 2, 3, 3, 4, 5