Я все еще очень новичок в 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
s, который не является тем, что я хочу.
Прежде всего, что я делаю неправильно здесь, а во-вторых, как мне вернуть List<Staff>
из этого запроса?
public List<Staff> Search(string searchString)
{
return allStaff.AsParallel().Select(/* something */).AsEnumerable();
}
возвращает IEnumerable<type>
, а не List<type>
.