Executando uma consulta LINQ simples em paralelo
Eu ainda sou muito novo no LINQ e no PLINQ. Eu geralmente uso apenas loops eList.BinarySearch
em muitos casos, mas estou tentando sair dessa mentalidade onde posso.
public class Staff
{
// ...
public bool Matches(string searchString)
{
// ...
}
}
Usando o "normal" LINQ - desculpe, eu não estou familiarizado com a terminologia - eu posso fazer o seguinte:
var matchedStaff = from s
in allStaff
where s.Matches(searchString)
select s;
Mas gostaria de fazer isso em paralelo:
var matchedStaff = allStaff.AsParallel().Select(s => s.Matches(searchString));
Quando eu verificar o tipo dematchedStaff
, é uma lista debool
s, que não é o que eu quero.
Primeiro de tudo, o que estou fazendo errado aqui, e em segundo lugar, como faço para retornar umList<Staff>
desta consulta?
public List<Staff> Search(string searchString)
{
return allStaff.AsParallel().Select(/* something */).AsEnumerable();
}
devolveIEnumerable<type>
, nãoList<type>
.