在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”。
答案 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));