【问题标题】:Linq Intersect with partial matchLinq 与部分匹配相交
【发布时间】:2019-04-07 04:15:06
【问题描述】:

我怎样才能让“相交”在 Linq 查询中为部分单词匹配返回 true?我需要一个.Contains() .Intersect() 的混合体。

 List<string> sParams = new List<string>(){"SAND", "PURPLE"};

 //One of my Prices has the color "Sanddust"
 Prices.Where(x => x.Color.ToUpper().Split(null).Intersect(sParams).Any());

上面的查询只返回精确的字符串匹配相交,但我需要返回true,因为字符串“SANDDUST”包含“SAND”。

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    为什么需要相交?只需使用 Any Contains。

    Prices.Where(x => sParams.Any(s => x.Color.ToUpper().Contains(s)));
    

    【讨论】:

    • 非常感谢。我不知道为什么我觉得我需要拆分两个字符串并进行比较???那些日子之一。
    • 需要做case吗?如果是这样,请查看以下问题:stackoverflow.com/questions/9923158/…
    【解决方案2】:
    Prices.Where(x => sParams.Any(s=> x.Color.ToUpper().Contains(s));
    

    【讨论】:

    • 另外,如果您想回答问题,最好能真实地描述您的解决方案、其工作原理以及任何其他相关信息
    猜你喜欢
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 2021-05-01
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多