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

c# – 使用LINQ获取项目列表,其中项目包含来自另一个列表的项目

发布时间:2020-12-15 23:41:54 所属栏目:百科 来源:网络整理
导读:有一个模型列表: Liststring models = new Liststring{ "abcd1234","xycd9999","zzz999z","ros7777"}; 有过滤器清单: Liststring filterer = new Liststring { "cd","9999" }; 我正在尝试使用LINQ来获取包含过滤器项目的所有模型作为其名称的一部分. 对于
有一个模型列表:

List<string> models = new List<string>
{
    "abcd1234","xycd9999","zzz999z","ros7777"
};

有过滤器清单:

List<string> filterer = new List<string>
    {
        "cd","9999"
    };

我正在尝试使用LINQ来获取包含过滤器项目的所有模型作为其名称的一部分.

对于这个例子:

>“abcd1234”和“xycd9999”包含“cd”
>“xycd9999”包含“9999”

因此,LINQ操作将返回两个项目的列表:“abcd1234”和“xycd9999”.

var filteredList = models
                   .Where(m => m.Contains("/*HERE WILL BE THE FILTERER ITEMS*/"))
                   .Distinct()
                   .ToList();

什么是正确的语法?

解决方法

var filteredList = models
    .Where(x => filterer.Any(y => x.Contains(y))
    .ToList();

Distinct在这里没有用处,因为Where调用不会引入重复项(除非模型具有重复值,并且您希望删除这些重复项).

(编辑:李大同)

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

    推荐文章
      热点阅读