检查元素的数量,每个元素的值及两个集合中元素的顺序是否相等,3个方面都相等则为true,否则为false

IList<string> strList1 = new List<string>(){"One", "Two", "Three", "Four", "Three"};IList<string> strList2 = new List<string>(){"One", "Two", "Three", "Four", "Three"};bool isEqual = strList1.SequenceEqual(strList2); // returns true

IList<string> strList1 = new List<string>(){"One", "Two", "Three", "Four", "Three"};IList<string> strList2 = new List<string>(){ "Two", "One", "Three", "Four", "Three"};bool isEqual = strList1.SequenceEqual(strList2); // returns false//如果是引用类型,则比较的是引用
Student std = new Student() { StudentID = 1, StudentName = "Bill" };IList<Student> studentList1 = new List<Student>(){ std };IList<Student> studentList2 = new List<Student>(){ std };bool isEqual = studentList1.SequenceEqual(studentList2); // returns true

Student std1 = new Student() { StudentID = 1, StudentName = "Bill" };
Student std2 = new Student() { StudentID = 1, StudentName = "Bill" };IList<Student> studentList3 = new List<Student>(){ std1};IList<Student> studentList4 = new List<Student>(){ std2 };isEqual = studentList3.SequenceEqual(studentList4);// returns false

//在上面的示例中,studentList1和studentList2包含相同的学生对象std。 所以studentList1.SequenceEqual(studentList2)返回true。 但是,stdList1和stdList2包含两个独立的学生对象std1和std2。 //所以现在,stdList1.SequenceEqual(stdList2)将返回false.//要比较复杂类型的两个集合的值,您需要实现IEqualityComperar <T>接口,如下所示class StudentComparer : IEqualityComparer<Student>
{public bool Equals(Student x, Student y){if (x.StudentID == y.StudentID && x.StudentName.ToLower() == y.StudentName.ToLower())return true;return false;}public int GetHashCode(Student obj){return obj.GetHashCode();}
}// following returns true
bool isEqual = studentList1.SequenceEqual(studentList2, new StudentComparer());

转载于:https://www.cnblogs.com/refuge/p/8151216.html

Linq 等式运算符:SequenceEqual相关推荐

  1. Boost:boost :: mem_fn等式运算符的测试程序

    Boost:boost :: mem_fn等式运算符的测试程序 实现功能 C++实现代码 实现功能 boost::bind模块,boost :: mem_fn等式运算符的测试程序 C++实现代码 #i ...

  2. 《Java SE实战指南》07-05:等式和关系运算符

    内容导航: 前言 1.等式运算符 1.1.原始类型 1.2.包装类 1.3.字符串 1.4.数组 2.关系运算符 前言 等式和关系运算符在实际开发中的使用频次非常高.比如登录功能中用户名和密码的运算. ...

  3. 一步一步学Linq to sql(一):预备知识

    从今天起将推出新手讲堂,首先从linq开始详细讲解.一步一步学Linq to sql(一):预备知识 什么是Linq to sql Linq to sql(或者叫DLINQ)是LINQ(.NET语言集 ...

  4. Linq to sql(一):预备知识(二)

    对象初始化器 public class Person { public string username { get; set; } public int age { get; set; } publi ...

  5. python左移位运算_python 移位运算符只能用于整型吗

    匿名用户 1级 2016-12-29 回答 什么是操作符? 简单的回答可以使用表达式4 + 5等于9,在这里4和5被称为操作数,+被称为操符. Python语言支持操作者有以下几种类型. 算术运算符 ...

  6. 简述LINQ的发展历程

    LINQ:最终统治了所有的语言! 让我们看看LINQ如何彻底改变了.NET中访问数据的方式 .NET与其他技术栈的不同之处之一绝对是LINQ,它是Language Integrated Query的首 ...

  7. LINQ :最终统治了​所有的语言!

    LINQ:最终统治了所有的语言! 让我们看看LINQ如何彻底改变了.NET中访问数据的方式 .NET与其他技术栈的不同之处之一绝对是LINQ,它是Language Integrated Query的首 ...

  8. Verilog HDL——运算符

    1.1 逻辑运算符 在Verilog HDL语言中有三种逻辑运算符: 1)&&逻辑与: 2)|| 逻辑或: 3)! 逻辑非. "&&"和" ...

  9. Verilog基础语法--运算符【常用的几种】

    概述 主要复习常用的一些运算符 逻辑运算符 逻辑与:&&[双目运算符] 逻辑或:|| [双目运算符] 逻辑非:! [单目运算符] 其中,!的优先级要大于&& 和 || ...

最新文章

  1. 30幅非常漂亮的微距摄影作品欣赏
  2. Socket笔记【转】
  3. ADO.NET之使用SqlConnection链接数据库
  4. 卸载后以前拍的视频会删除吗_可立拍!苹果自己的视频编辑App是一个被忽视的好工具...
  5. c语言实现输入输出功能需要调用库函数,C语言学习笔记(二)
  6. 欢迎关注我的微信公众账号:Linux技巧(微信号:irefactoring),一起学习Linux知识~~~...
  7. 为 ASP.NET 创建缓存配置对象[转载]
  8. java 中 class 对象_java中Class对象详解
  9. 程序员面试金典——18.12最大和子矩阵
  10. softlockup/hardlockup原理详细介绍
  11. windows无法完成格式化U盘的几种终极解决办法
  12. Mysql数据库内对查询结果去重复指令【重点】
  13. 台式计算机默认关机变注销,win10系统关机变注销的解决方案
  14. 2009 Q.E.D
  15. Dynamics 365 自定义图表的颜色
  16. 牛B学生上课气死老师
  17. Unity在XR设备中获取手柄的按键信息
  18. 比赛之前的最后一点点总结
  19. 【渝粤题库】陕西师范大学111119 统计学作业
  20. Python守护进程 daemon

热门文章

  1. [转载].sscanf的用法
  2. 如何划分155MSDH带宽
  3. 金山发布《2006年度信息安全报告》
  4. linux下unzip解压报错“symlink error: File name too long”怎么办?提供解决方案。
  5. vue常见错误汇总(自看)
  6. ui培训教程分享:平面设计怎样视觉空间感?
  7. UI设计工作好找吗?有哪些面试技巧?
  8. 零基础参加java培训如何学习
  9. oracle time格式化比较,ORACLE DATE和TIMESTAMP数据类型的比较(二) (转)
  10. C# 算法系列一基本数据结构