首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当相等确实匹配时,linq .Contains不匹配

当相等确实匹配时,LINQ的.Contains方法不匹配的原因可能是由于数据类型不匹配或者是比较的方式不正确。

首先,确保数据类型匹配。.Contains方法用于检查一个集合中是否包含指定的元素。如果集合中的元素类型与要比较的元素类型不匹配,就会导致不匹配。例如,如果集合中的元素是字符串类型,而要比较的元素是整数类型,那么.Contains方法将无法匹配。

其次,检查比较方式是否正确。.Contains方法默认使用对象的Equals方法进行比较。如果要比较的对象没有正确实现Equals方法,或者Equals方法的实现与预期不符,就会导致不匹配。在这种情况下,可以考虑使用自定义的比较器来替代默认的比较方式。

另外,还需要注意.Contains方法对于字符串比较是区分大小写的。如果要进行不区分大小写的比较,可以使用StringComparer类中的InvariantCultureIgnoreCase属性来创建一个不区分大小写的比较器。

总结起来,解决.Contains方法不匹配的问题,可以按照以下步骤进行操作:

  1. 确保数据类型匹配,比较的元素类型与集合中的元素类型一致。
  2. 检查比较方式是否正确,确保要比较的对象正确实现了Equals方法。
  3. 如果需要进行不区分大小写的比较,可以使用StringComparer.InvariantCultureIgnoreCase创建一个不区分大小写的比较器。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何比较2个数组相等以及如何检出匹配

有一次,我在“石器时代”群里发现了 1 个有意思的提问:“如何比较 2 个数组相等以及如何检出匹配项?”...02、检出匹配项 可以通过 Arrays.mismatch() 方法检出 2 个数组中哪几个元素不相等。如果 2 个数组完全相等,该方法返回 -1;否则的话,返回第一个匹配项目的下标。...System.out.println(Arrays.mismatch(str1, str2)); 程序输出的结果如下所示: -1 和我们预期的结果一致,因为 str1 和 str2 没有匹配项。...System.out.println(Arrays.mismatch(str1, str3)); 程序输出的结果如下所示: 3 的确是从下标为 3 的元素开始匹配的,因为 str1 中下标为 3...System.out.println(Arrays.mismatch(writer1,writer3)); 程序输出的结果如下所示: -1 0 和我们预期的结果一致,因为 writer1 和 writer2 没有匹配

96730
  • Rafy 框架 - 通用查询条件(CommonQueryCriteria)

    属性匹配 在查询需要使用一个或几个属性的限定匹配来进行查询,我们可以通过 CommonQueryCriteria 来使用以下方法进行快速查询。...下面的代码演示了如何使用('Name contains name' And 'Age equal age' Or 'Code equal code')的条件进行查询: C# this.GetBy(new...new PropertyMatchGroup { new PropertyMatch(TestUser.CodeProperty, code) } }); 相对于 Linq...查询的优势 使用 CommonQueryCriteria 进行查询,相对于 Linq 查询 而言,有以下的优势: 更加方便、简单 仓库类型上已经提供了参数是 CommonQueryCriteria...性能更好 使用 Linq 查询,编译器会使用反射生成表达式树,然后 Rafy 框架才会解析这棵树,生成最终的 Sql 树。

    1.1K70

    C# 基础知识系列-7 Linq详解

    解决方案:先使用OrderBy对数据源进行一次排序,使结果与原有顺序相反,然后使用First获取 数据源为空,或者不存在满足条件的元素,调用这组方法会报错。...是否包含某个元素 判断数据源中是否包含某个元素,返回一个bool值,如果包含则返回true,如果包含则返回false。...public static bool Contains (this IEnumerable source, TSource value); //传入相等性比较器的...(student1);// 返回 false, bool isContains2 = students.Contains(student2);// 返回 true 说明:类的默认相等比较是比较是否是同一个对象...,即返回的 示例2: 创建一个相等性比较器,值得注意的是,相等性比较器有两个方法,一个是比较元素是否相等,一个是返回元素的HashCode,这两个方法必须在判断元素是否相等上保持结果一致。

    2.4K50

    扩展方法必须在非泛型静态类中定义

    若要使用标准查询运算符,请先使用 using System.Linq 指令将它们置于范围中。 ...在编译绑定扩展方法 可以使用扩展方法来扩展类或接口,但不能重写扩展方法。 与接口或类方法具有相同名称和签名的扩展方法永远不会被调用。 编译,扩展方法的优先级总是比类型本身中定义的实例方法低。 ...编译器遇到方法调用时,它首先在该类型的实例方法中寻找匹配的方法。 如果未找到任何匹配方法,编译器将搜索为该类型定义的任何扩展方法,并且绑定到它找到的第一个扩展方法。 ...MethodB 扩展方法永远不会被调用,因为它的名称和签名与这些类已经实现的方法完全匹配。 如果编译器找不到具有匹配签名的实例方法,它会绑定到匹配的扩展方法(如果存在这样的方法)。...如果你确实为给定类型实现了扩展方法,请记住以下几点: 如果扩展方法与该类型中定义的方法具有相同的签名,则扩展方法永远不会被调用。 在命名空间级别将扩展方法置于范围中。

    1.9K10

    C#知多少 | 每个版本都更新了什么?

    _ => 0M }; 在 LINQ 查询中会经常看到这种情况。 可以通过导入 Enumerable 或 Queryable 来导入 LINQ 模式。...仅左操作数计算为 null ,才能使用运算符 ??= 将其右操作数的值分配给左操作数。 List numbers = null; int? i = null; numbers ??...; 4模式匹配增强功能 C# 9 包括新的模式匹配改进: 类型模式要求在变量是一种类型匹配 带圆括号的模式强制或强调模式组合的优先级 联合 and 模式要求两个模式都匹配 析取 or 模式要求任一模式匹配...求反 not 模式要求模式匹配 关系模式要求输入小于、大于、小于等于或大于等于给定常数。...最常见的用法是在字段声明中: private List _observations = new(); 需要创建新对象作为参数传递给方法,也可使用目标类型 new

    1.8K20

    SQL命令 HAVING(二)

    排序规则适用于IN比较,因为它适用于相等性测试。默认情况下,IN比较使用字段定义的排序规则类型;默认情况下,字符串字段定义为SQLUPPER,区分大小写。...Contains Operator ([) Contains操作符是左括号符号:[。 它允许将子字符串(字符串或数字)匹配到字段值的任何部分。 比较总是区分大小写的。...LIKE允许使用文字和通配符进行模式匹配希望返回包含已知字面值子字符串的数据值,或在已知序列中包含多个已知子字符串,请使用LIKE。 LIKE使用目标的排序规则进行字母大小写比较。...希望返回包含已知字面值子字符串的数据值,或包含一个或多个位于可能字符列表或范围内的字面值字符,或在已知序列中包含多个这样的子字符串,请使用%MATCHES。...数据值不重要,但这些值的字符类型格式很重要,%PATTERN特别有用。 PATTERN还可以指定已知的文字字符。 它使用EXACT排序法进行文字比较,这总是区分大小写的。

    86330

    SQL命令 WHERE(二)

    BETWEEN使用与它所匹配的列相同的排序规则类型。 默认情况下,字符串数据类型排序区分大小写。 IN和%INLIST谓词 IN谓词用于将一个值匹配到非结构化的一系列项。...Collation应用于IN比较,就像它应用于相等测试一样。 IN使用字段的默认排序规则。 默认情况下,与字段字符串值的比较区分大小写。...否则,返回任何记录。...希望返回包含已知字面值子字符串的数据值,或在已知序列中包含多个已知子字符串,请使用LIKE。 LIKE使用目标的排序规则进行字母大小写比较。...您希望返回包含已知字面值子字符串的数据值,或包含一个或多个位于可能字符列表或范围内的字面值字符,或在已知序列中包含多个这样的子字符串,请使用%MATCHES。

    1.2K10

    EntityFramework数据持久化复习资料5、LINQ概述与应用(超终点)

    根据id精准查询·返回单个对象 这里我们是单个的id匹配,我们最后需要使用【SingleOrDefault】。...2、LINQ根据【昵称】模糊查询返回列表 模糊查询并遍历·这里用到的是字符串的【Contains】函数,ToList()返回一个列表。...List list = init(); var linq=(from item in list where item.userName.Contains("龙")...聚合查询共计有5个,但是如果数量较大的计数就需要使用LongCount故而有6个属性 方法名 说明 Count 对集合中的元素计数,以及对集合中满足条件的元素计数 LongCount 与Count相同,Count...UserDetails() {id=4,uid=5,introduce="聂小倩就是王祖贤" }); return list; } 7、多表联合查询基础示例 使用的关键字是【join】进行链接,匹配

    2.2K20

    原 GetHashCode重写指南(译文)

    推断很简单,假定两个对象是相等但是hash值不同,如果第一个对象放在桶里可能被放进12号桶,如果接着在set中查询另一个不同hash的相等对象,他可能回去搜索67号桶,那么就会找不到。...然而,这只是个理想情况,实际上确是: Rule:对象包含在依赖于哈希代码保持稳定的数据结构中, GetHashCode 返回的整数决不能更改 使一个对象的hash值随着对象的字段变化而变化是可行的,...对象可能会超出你预料的放进hash表中,许多linq操作内部都是使用的hash表,在linq操作中不要做危险的可能会导致hash值改变的操作。...System.String.GetHashCode 的文档特别注明两个相同的字符串在 CLR 的不同版本中可以有不同的哈希代码, 实际上它们确实如此。...数据结构存在冗余,异或可以产生或加剧分发问题。

    1.1K60

    LINQ之方法语法

    上节讲到使用linq的查询关键字进行查询,这节讲一下linq查询的另一种方式——linq方法。...使用linq方法语法,必须要会用lambda表达式,配合lambda表达式才能体会到linq的优雅便捷。...下面介绍一些常用的linq方法(以下例子基于上述vs数组): Select linq方法基本上都要配合lambda表达式,因为linq方法的参数一般都是一个委托,而lambda表达式在填充委托方面有着优雅的特性...vs.Skip(2);//运行结果:325 var a = vs.Take(2);//运行结果:16 SkipWhile()和TakeWhile()用于满足条件即停止执行,前者返回剩下的元素,后者返回匹配到的元素...var a = vs.Concat(new List(){7,9,8});//运行结果16325798 Contains Contains(T t)用于指定其参数是否包含在该数据源中

    1K20

    C#3.0新增功能09 LINQ 标准查询运算符 04 运算

    Enumerable.ContainsQueryable.Contains 05 投影运算 投影是指将对象转换为一种新形式的操作,该形式通常只包含那些将随后使用的属性。...还可以在更改原始对象的情况下投影该对象。 下面一节列出了执行投影的标准查询运算符方法。 方法 方法名 说明 C# 查询表达式语法 详细信息 选择 投影基于转换函数的值。...查询所面向的数据源相互之间具有无法直接领会的关系,联接就成为一项重要的运算。在面向对象的编程中,这可能意味着在未建模对象之间进行关联,例如对单向关系进行反向推理。...LINQ 框架中提供的 join 方法包括 Join 和 GroupJoin。 这些方法执行同等联接,即根据 2 个数据源的键是否相等匹配这 2 个数据源的联接。...Enumerable.Repeat 10 相等运算 两个序列,其相应元素相等且具有被视为相等的相同数量的元素。

    9.7K20

    【LeetCode-010】Regular Expression Matching

    Note: s could be empty and contains only lowercase letters a-z. p could be empty and contains only lowercase...代表一个任意字符,与其附近的字符无关 '*' 代表o个或者多个前面的字符,该字符影响前面字符的“存在”,例如:a*={ε,a,aa,aaa,…},即"*"表示0个前面的字符,该字符串为空串ε。...题目要求匹配整个输入字符串,即完全匹配,分如下情况: 同时为空则true p为ε,s为ε则匹配 s为ε,p为ε则匹配,但此时p分两种情况: 1、p确实为ε 2、p为”a*“类型,此时*代表前面的字符存在...0次,则p在匹配意义上位ε 不同时为空就需要比较 p字符串中当前字符是否匹配与其下一个是否为’*‘有关,所以分两种情况 [p+1]=='*' 则 匹配当前字符或者匹配下两个字符[p+2](即匹配当前字符...if(isMatch(s,p.substring(2))) return true; //2.1.2 匹配当前字符,注意:此时p字符串步进

    33640

    快速字符串匹配一: 看毛片算法(KMP)

    把原本字符串匹配效率 O(n*m) 缩短到了O(n+m),把✖️变成了➕,真是了不得。 每次我回顾 KMP 算法,都会发现自己是个小白,或者每次回顾,都发现上次因为回顾而写的总结居然是错的!...c y 从肉眼看出来,匹配一定是失败的,因为 匹配字符串 最后一个字母 y 匹配。... 匹配字符串 一直向右移动,移动到第 5 位的时候,终于发现首字母是匹配的情况了。...a b c x y a b c y 中的子串 a b c x y a b c 的公共前后缀是 a b c, 一开始,我们发现第 8 位匹配...字符串快速匹配,第一弹,看毛片。回顾一下,感觉以后应该都不会忘记了吧。 开头说的 把 KMP 和C#的 String.Contains 进行PK ,要留到下一篇博文里。

    2K20

    动态Linq的逻辑与和逻辑或的条件查询

    为了简单方便快捷的完成这个功能,我使用LINQ to SQL+ReportView的方式来完成。 首先需要做的是一个查询界面和写一个数据库查询方法。...用户在输入框中输入多个指标,将根据指标的格式生成LINQ的Where语句。...这个很容易实现,比如输入“2003 北京 人口”,那么就根据空格将这个字符串分成3个字符串,第一个字符串格式是年份,所以用表中的Year字段进行匹配,第二个字段是地区,所以再用表中的Location进行匹配...                        string keyword=item;                         data = data.Where(d => d.Indicator.Contains...但是真正的难点是如何用LINQ来实现动态的或查询。

    1.6K10
    领券