I believe Parallel.ForEach
will work:
Parallel.ForEach(groupedFamilies.AsParallel(), (groupedFamily, loopState) =>
{
int groupedFamilyCount = groupedFamily.Count();
if (groupedFamilyCount == 1)
{
Console.WriteLine(groupedFamily.FirstOrDefault().Name);
loopState.Stop(); // break if I find the count = 1
}
});
Depending on your use case, you might need loopState.Break
instead. Use Stop()
for Any-like operations, Break()
for First-like ones.
There's a good article on the subject in Microsoft's articles on parallel programming with .NET 4 called "When To Use Parallel For Each Or PLINQ?"