我对 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>
。