[英]selecting distinct elements from two lists using LINQ?
List<int> lst1 = new List<int>{1,2,3,5,2};
List<int> lst2 = new List<int>{4,5,6,1,6};
List<int> lst3 = new List<int>();
Expected Output: lst3={1,2,3,4,5,6}
预期产出: lst3 = {1,2,3,4,5,6}
Can anyone help me with the LINQ code to select distinct elements from two lists ? 任何人都可以帮助我使用LINQ代码从两个列表中选择不同的元素?
Thank you 谢谢
使用Union()
方法生成两个列表的Set Union,返回包含两个列表中存在的所有项的新列表:
lst3 = list1.Union(lst2).OrderBy(p=>p).ToList();
Basically, you can do 基本上,你可以做到
lst1.AddRange(lst2);
List<int> lst3 = lst1.Distinct().ToList();
Another approach (I think the most effcient one [amortized]): 另一种方法(我认为最有效的[摊销]):
var hashSet = new HashSet<int>(lst1);
foreach (var item in lst2)
{
hashSet.Add(item);
}
var lst3 = hashSet.ToList();
LINQ: LINQ:
var lst3 = lst1.Union(lst2).ToList();
A basic approach 一个基本的方法
List<int> lst3 = new List<int>();
foreach (int x in lst1)
if (!lst3.Contains(x))
lst3.Add(x);
foreach (int x in lst2)
if (!lst3.Contains(x))
lst3.Add(x);
您可以使用UNION并从结果集中获取DISTINCT值
lst3 = lst1.Union(lst2).Distinct().ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.