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

c# – 使用List.Any()查找字符串是否包含项目以及查找匹配项目?

发布时间:2020-12-15 23:36:04 所属栏目:百科 来源:网络整理
导读:我有一个字符串列表,可以被认为是“过滤器”. 例如: Liststring filters = new Liststring();filters.Add("Apple");filters.Add("Orange");filters.Add("Banana"); 我有另一个字符串列表,其中包含句子. 例: Liststring msgList = new Liststring();msgList
我有一个字符串列表,可以被认为是“过滤器”.

例如:

List<string> filters = new List<string>();
filters.Add("Apple");
filters.Add("Orange");
filters.Add("Banana");

我有另一个字符串列表,其中包含句子.

例:

List<string> msgList = new List<string>();
msgList.Add("This sentence contains the word Apple.");
msgList.Add("This doesn't contain any fruits.");
msgList.Add("This does. It's a banana.");

现在我想找出msgList中哪些项目包含水果.为此,我使用以下代码:

foreach(string msg in msgList)
{
    if(filters.Any(msg.Contains))
    {
        // Do something.
    }
}

我想知道,在Linq中是否有一种方法可以使用类似于List.Any()的方法,我可以检查msgList是否包含水果,如果有,也可以获得与查询相匹配的水果.如果我可以在’过滤器’中得到匹配的索引应该没问题.也就是说,对于循环的第一次迭代,它应该返回0(‘Apple’的索引),对于第二次迭代返回null或类似负值,对于第三次迭代,它应该返回2(‘Banana’的索引) .

我在SO以及谷歌周围检查过但是找不到我正在寻找的东西.

解决方法

你想要 FirstOrDefault而不是Any.

如果找不到,FirstOrDefault将返回匹配的第一个对象,如果未找到,则返回默认值(通常为null).

(编辑:李大同)

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

    推荐文章
      热点阅读