Równoległe uruchamianie prostego zapytania LINQ
Nadal jestem bardzo nowy w LINQ i PLINQ. Zwykle używam pętli iList.BinarySearch
w wielu przypadkach, ale staram się wyjść z tego sposobu myślenia, gdzie mogę.
public class Staff
{
// ...
public bool Matches(string searchString)
{
// ...
}
}
Używając „normalnego” LINQ - przepraszam, nie znam terminologii - mogę wykonać następujące czynności:
var matchedStaff = from s
in allStaff
where s.Matches(searchString)
select s;
Ale chciałbym to zrobić równolegle:
var matchedStaff = allStaff.AsParallel().Select(s => s.Matches(searchString));
Kiedy sprawdzę typmatchedStaff
, to listabool
s, co nie jest tym, czego chcę.
Po pierwsze, co tu robię źle, a po drugie, jak mam zwrócićList<Staff>
z tego zapytania?
public List<Staff> Search(string searchString)
{
return allStaff.AsParallel().Select(/* something */).AsEnumerable();
}
zwracaIEnumerable<type>
, nieList<type>
.