加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – LinQ WHERE string.Contains或string.IndexOf?

发布时间:2020-12-15 20:03:40 所属栏目:百科 来源:网络整理
导读:我需要写一些可以得到相同结果的东西: var result = collection.Where( o = o.Name.IndexOf( "some_string2" ) != -1 || o.Name.IndexOf( "some_string_2" ) != -1 || o.Name.IndexOf( "some_string3" ) != -1 ) 要检查的字符串的数量和值(some_string_1,2
我需要写一些可以得到相同结果的东西:

var result = collection.Where( o => o.Name.IndexOf( "some_string2" ) != -1 || o.Name.IndexOf( "some_string_2" ) != -1 || o.Name.IndexOf( "some_string3" ) != -1 )

要检查的字符串的数量和值(some_string_1,2和3)是未知的(来自DB),所以更通用的…

我试过以下,但失败了……

var stringsToCheck = someCommaSeparatedStrings.ToLower().Split( ',' ).ToList();
var result = collection.Where( o => stringsToCheck.Contains( o.ToLower() ) );

换句话说,我需要从集合中检索名称包含一些特定字符串的所有对象.

解决方法

var result = collection.Where(item => stringsToCheck.Any(stringToCheck => 
    item.Name.Contains(stringToCheck)));

用英语读取这是:给我集合中的所有项目,在其中检查其中一个字符串是集合中字符串的子字符串.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读