C#中的Linq Intersect与Except方法使用实例
程序员文章站
2023-11-27 13:11:28
实例描述
现有某班学生的两份成绩,两份成绩中存在一些不一致的记录。需借助于编程方法找出这些不一致的记录。
实例代码
using system;
using...
实例描述
现有某班学生的两份成绩,两份成绩中存在一些不一致的记录。需借助于编程方法找出这些不一致的记录。
实例代码
using system; using system.collections.generic; using system.linq; namespace intersectandexceptexp { class program { static void main(string[] args) { list<student> studentlist1 = newlist<student>() { new student(){studentid=1,score=64}, new student(){studentid=2,score=85}, new student(){studentid=3,score=78}, new student(){studentid=4,score=94}, new student(){studentid=5,score=90} }; list<student> studentlist2 = newlist<student>() { new student(){studentid=1,score=64}, new student(){studentid=2,score=80}, new student(){studentid=3,score=78}, new student(){studentid=4,score=94}, new student(){studentid=5,score=95} }; var both = studentlist1.intersect(studentlist2,new studentcomparer()); var diff1 =studentlist1.except(both, new studentcomparer()); var diff2 =studentlist2.except(both, new studentcomparer()); console.writeline("-------------下面是两份成绩中不同的记录--------------"); console.writeline("-------------第一份学生成绩--------------"); foreach (var s in diff1) { console.writeline("studentid:"+s.studentid+";score:"+s.score); } console.writeline("-------------第一份学生成绩--------------"); foreach (var s in diff2) { console.writeline("studentid:"+ s.studentid + ";score:" + s.score); } } } public class student { public int studentid { get; set; } public int score { get; set; } } public class studentcomparer : iequalitycomparer<student> { public bool equals(student x, studenty) { if (object.referenceequals(x, y)) returntrue; return x != null && y != null&& x.studentid == y.studentid && x.score == y.score; } public int gethashcode(student obj) { int hashstudentid =obj.studentid.gethashcode(); int hashscore =obj.score.gethashcode(); return hashstudentid ^ hashscore; } } }
代码说明
先使用intersect方法生成两份记录的交集,该方法会使用传入的比较器对值进行比较决定记录是否相同。基于前步生成的交集,再使用except方法找出两份记录中不一致的记录,该方法同样使用传入的比较器对值进行比较决定记录是否相同。
执行结果
上一篇: 草莓网有假货吗,草莓网上都有哪些货物!
下一篇: C#折半插入排序算法实现方法
推荐阅读
-
C#中的Linq Intersect与Except方法使用实例
-
C#中HashTable的定义与使用方法
-
C#中List集合使用Max()方法查找到最大值的实例
-
C#中的Linq Intersect与Except方法使用实例
-
SQL Server中调用C#类中的方法实例(使用.NET程序集)
-
C#使用LINQ中Enumerable类方法的延迟与立即执行的控制
-
PHP swoole中http_server的配置与使用方法实例分析
-
C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法
-
浅谈C#中HttpWebRequest与HttpWebResponse的使用方法
-
C#中全局作用域的常量、字段、属性、方法的定义与使用