Kri*_*s-I 4 .net c# linq c#-4.0
我想知道listA中是否至少有一个listRef元素出现多次?其他值可以不止一次出现.
List<string> listA = new List<string> { "A", "A", "B", "C", "D", "E" };
List<string> listRef = new List<string> { "B", "D" };
Run Code Online (Sandbox Code Playgroud)
谢谢,
试试这个:
bool hasRef = listref.Any(r => listA.Count(a => a == r) > 1);
Run Code Online (Sandbox Code Playgroud)
我会首先使用ToLookup方法生成Lookup<string, string>,然后用它来检查你的状况:
var lookup = listA.ToLookup(x => x);
return listRef.Any(x => lookup.Contains(x) && lookup[x].Count() > 1);
Run Code Online (Sandbox Code Playgroud)
您可以使用GroupBy并ToDictionary实现相同的目标:
var groups = listA.GroupBy(x => x).ToDictionary(g => g.Key, g => g.Count());
return listRef.Any(x => groups.ContainsKey(x) && groups[x] > 1);
Run Code Online (Sandbox Code Playgroud)