Linq与部分匹配相交

时间:2018-11-02 22:45:28

标签: c# linq

在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”。

2 个答案:

答案 0 :(得分:1)

为什么需要相交?只需使用任何包含。

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

答案 1 :(得分:1)

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