Bonjour

Dans le livre Link in Action, (Linq ! ) je lis :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
var processes =
    Process.GetProcesses()
  .Where(process => process.WorkingSet64 > 20*1024*1024)
  .OrderByDescending(process => process.WorkingSet64)
  .Select(process => new { process.Id,
                                     Name=process.ProcessName });
Let’s take a deeper look at the Where method and analyze how it works. This
method is provided by the System.Linq.Enumerable class. Here again is how it’s implemented, as we showed in listing 3.2:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public static IEnumerable<TSource> Where<TSource>(
                             this IEnumerable<TSource> source,
                             Func<TSource, Boolean> predicate)
                   {
                         foreach (TSource element in source)
                         {
                             if (predicate(element))
                                  yield return element;
                          }
                   }
Ce que je ne comprends pas, c'est "foreach (TSource element in source)"
Dans ce cas, element est du type TSource. Mais source est aussi du type TSource, non ? Dans ce cas précis, c'est un objet de type Process[]. Cela ne devrait pas être un Process ?