Exécution d'une requête LINQ simple en parallèle

Je suis toujours très LINQ et PLINQ. En général j'ai juste utiliser des boucles et des List.BinarySearch dans beaucoup de cas, mais je vais essayer de sortir de cet état d'esprit où je peux.

public class Staff
{
  //...
  public bool Matches(string searchString)
  {
    //...
  }
}

Utilisation "normale" de LINQ - désolé, je suis familier avec la terminologie - je peux faire ce qui suit:

var matchedStaff = from s
                     in allStaff
                  where s.Matches(searchString)
                 select s;

Mais j'aimerais le faire en parallèle:

var matchedStaff = allStaff.AsParallel().Select(s => s.Matches(searchString));

Lorsque je vérifie le type de matchedStaffc'est une liste de bools, ce qui n'est pas ce que je veux.

Tout d'abord, ce que je fais mal ici, et, deuxièmement, comment puis-je retourner un List<Staff> à partir de cette requête?

public List<Staff> Search(string searchString)
{
  return allStaff.AsParallel().Select(/* something */).AsEnumerable();
}

retourne IEnumerable<type>pas List<type>.

source d'informationauteur user1002358 | 2012-12-18