首 页 行业热点 新车 试驾评测 养车用车 车型库

C# List集合Linq取交集、并集、差集、去重

发布网友 发布时间:2024-10-04 03:52

我来回答

1个回答

热心网友 时间:9分钟前

在C#中,List集合的处理可以通过LINQ方法来实现各种操作,如交集、并集、差集以及去重。首先,我们创建两个List对象,例如list1和list2:

List<List> list1 = new List<List>();

List<List> list2 = new List<List>();

1. 要获取两个List的交集,可以使用Intersect方法:

List<List> list3 = list1.Intersect(list2).ToList();

这会返回两个列表享的元素集合。

2. 获取并集,使用Union方法:

List<List> list4 = list1.Union(list2).ToList();

并集包含所有不重复的元素,即两个列表中的所有独特元素。

3. 要计算差集,即list1中独有的元素,使用Except方法:

List<List> list5 = list1.Except(list2).ToList();

这将返回在list1中但不在list2中的元素列表。

接下来,我们有一个包含重复项的User对象列表users:

List users = new List();

users.Add(new User("张三", "永丰路299号", DateTime.Parse("2018-05-03")));

users.Add(new User("张三", "上地西路8号", DateTime.Parse("2018-05-04")));

...其他重复项...

users.Add(new User("李四", "海鹰路甲一号", DateTime.Parse("2018-05-06")));

去重操作有两种方式:lambda表达式和Distinct方法。使用lambda表达式,可以找到所有不重复的User对象,基于Name属性:

List list6 = users.Where((x, i) => users.FindIndex(n => n.Name == x.Name) == i).ToList();

而Distinct方法则适用于值类型,如简单对象,它会根据对象的默认哈希和相等性规则去重:

List list7 = users.Distinct().ToList();

这样,list7将只包含所有唯一的User对象。

热心网友 时间:1分钟前

在C#中,List集合的处理可以通过LINQ方法来实现各种操作,如交集、并集、差集以及去重。首先,我们创建两个List对象,例如list1和list2:

List<List> list1 = new List<List>();

List<List> list2 = new List<List>();

1. 要获取两个List的交集,可以使用Intersect方法:

List<List> list3 = list1.Intersect(list2).ToList();

这会返回两个列表享的元素集合。

2. 获取并集,使用Union方法:

List<List> list4 = list1.Union(list2).ToList();

并集包含所有不重复的元素,即两个列表中的所有独特元素。

3. 要计算差集,即list1中独有的元素,使用Except方法:

List<List> list5 = list1.Except(list2).ToList();

这将返回在list1中但不在list2中的元素列表。

接下来,我们有一个包含重复项的User对象列表users:

List users = new List();

users.Add(new User("张三", "永丰路299号", DateTime.Parse("2018-05-03")));

users.Add(new User("张三", "上地西路8号", DateTime.Parse("2018-05-04")));

...其他重复项...

users.Add(new User("李四", "海鹰路甲一号", DateTime.Parse("2018-05-06")));

去重操作有两种方式:lambda表达式和Distinct方法。使用lambda表达式,可以找到所有不重复的User对象,基于Name属性:

List list6 = users.Where((x, i) => users.FindIndex(n => n.Name == x.Name) == i).ToList();

而Distinct方法则适用于值类型,如简单对象,它会根据对象的默认哈希和相等性规则去重:

List list7 = users.Distinct().ToList();

这样,list7将只包含所有唯一的User对象。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com