Выполнение простого запроса LINQ параллельно
Я все еще очень плохо знаком с LINQ и PLINQ. Я обычно просто использую петли иList.BinarySearch
во многих случаях, но я пытаюсь избавиться от этого мышления, где я могу.
public class Staff
{
// ...
public bool Matches(string searchString)
{
// ...
}
}
Используя «обычный» LINQ - извините, я не знаком с терминологией - я могу сделать следующее:
var matchedStaff = from s
in allStaff
where s.Matches(searchString)
select s;
Но я бы хотел сделать это параллельно:
var matchedStaff = allStaff.AsParallel().Select(s => s.Matches(searchString));
Когда я проверяю типmatchedStaff
это списокbool
с, что не то, что я хочу.
Во-первых, что я здесь делаю не так, а во-вторых, как мне вернутьList<Staff>
из этого запроса?
public List<Staff> Search(string searchString)
{
return allStaff.AsParallel().Select(/* something */).AsEnumerable();
}
возвращаетсяIEnumerable<type>
неList<type>
.