C# 两个集合比较差值 Linq的Except的用法
2021-04-03 09:24
标签:lse linq 没有 lis i++ false 参数 值类型 string 输出的结果是 c d var strList3 = strList1.Except(strList2).ToList(); 这里的意思是strList1中哪些是strList2中没有的,并将获得的差值存放在strList3 (即:strList1中有,strList2中没有) var strList3 = strList2.Except(strList1).ToList(); 这样输出的结果就是 f e 这里将strList1与strList2位置对调下,就是strList2中哪些是strList1中没有的存放在strList3 (即:strList2中有,strList1中没有) 首先创建Student类 然后创建2个List 结果输出 这是因为Except通过使用默认的相等比较器对值进行比较,生成两个序列的差集,需要重写 Equals和GetHashCode 方法 如下: ***** 特别注意 这里需要加上参数 new StudentComparer() C# 两个集合比较差值 Linq的Except的用法 标签:lse linq 没有 lis i++ false 参数 值类型 string 原文地址:https://www.cnblogs.com/xinianxinqix/p/9204534.htmlC# 两个集合比较差值 Linq的Except的用法
值类型的集合比较差值
List
引用类型的集合比较差值
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
}
List
学号: 1 姓名: 小明
学号: 2 姓名: 小刚
学号: 3 姓名: 小红
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public override bool Equals(object obj)
{
if (obj is Student)
{
Student student = obj as Student;
return Id == student.Id && Name == student.Name;
}
return false;
}
public override int GetHashCode()
{
return Id.GetHashCode() ^ Name.GetHashCode();
}
}
public class StudentComparer: IEqualityComparer
var studentList3 = studentList1.Except(studentList2,new StudentComparer()).ToList();
文章标题:C# 两个集合比较差值 Linq的Except的用法
文章链接:http://soscw.com/index.php/essay/71744.html