Parallele Ausführung einer einfachen LINQ-Abfrage
Ich bin noch sehr neu in LINQ und PLINQ. Ich benutze im Allgemeinen nur Schleifen undList.BinarySearch
in vielen Fällen, aber ich versuche, aus dieser Denkweise herauszukommen, wo ich kann.
public class Staff
{
// ...
public bool Matches(string searchString)
{
// ...
}
}
Mit "normalem" LINQ - die Terminologie ist mir unbekannt - kann ich Folgendes tun:
var matchedStaff = from s
in allStaff
where s.Matches(searchString)
select s;
Aber ich würde das gerne parallel machen:
var matchedStaff = allStaff.AsParallel().Select(s => s.Matches(searchString));
Wenn ich den Typ überprüfematchedStaff
, es ist eine Liste vonbool
s, das ist nicht was ich will.
Erstens, was mache ich hier falsch und zweitens, wie kehre ich zurück?List<Staff>
von dieser Abfrage?
public List<Staff> Search(string searchString)
{
return allStaff.AsParallel().Select(/* something */).AsEnumerable();
}
kehrt zurückIEnumerable<type>
nichtList<type>
.