我有两个字符串数组;一个是list
,另一个是find
我希望能够使用扩展方法和linq计算find中部分包含在“list”中的项目数。以下是我将如何在几个嵌套循环中执行此操作的摘要:
int Count = 0;
foreach (string f in find)
{
foreach (string l in list)
{
if (l.Contains(f))
{
Count++;
break;
}
}
}
return Count;
我希望能够做到这样的事情:
int Count = list.Select(...);
在我的实际应用中,list
是类型IQueryable<string>
的linq查询中的元素,find
是静态string[]
。我希望能够在linq中执行上述计数。我知道我可能不得不使用.AsEnumerable()
,因为解决方案可能无法转换为SQL。
答案 0 :(得分:3)
int count = find.Count(f => list.Any(s => s.Contains(f)));
答案 1 :(得分:1)
var count = (
from f in find
where list.Any(l => f.Contains(l))
select f).Count();