C#中的Linq Intersect与Except方法使用实例
程序员文章站
2023-08-17 21:08:22
实例描述
现有某班学生的两份成绩,两份成绩中存在一些不一致的记录。需借助于编程方法找出这些不一致的记录。
实例代码
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#中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#中全局作用域的常量、字段、属性、方法的定义与使用
-
node.js中stream流中可读流和可写流的实现与使用方法实例分析
-
javascript中&&运算符与||运算符的使用方法实例