J'ai appris le C# en 2006, et j'ai récemment essayé de revenir en arrière. J'ai appris alors qu'ils ont ajouté quelque chose appelé LINQ Extensions à C# 3.0. Maintenant, je suis familier avec les méthodes d'extension, et je réfléchis juste aux détails de ceux liés à IEnumerables.Comment une extension LINQ enchaîne-t-elle d'autres extensions?
Plus tôt aujourd'hui, moi et un de mes collègues se demandaient si oui ou non les blocs de code suivants sont équivalents:
List<int> integers;
IEnumerable<int> subResult = items.Where(i => IsPrime(i));
IEnumerable<int> orderedResult = subResult.OrderBy(i => i);
contre
List<int> integers;
IEnumerable<int> result = items.Where(i => IsPrime(i)).OrderBy(i => i);
Il m'a dit la dernière était plus efficace car l'extension a utilisé l'interrogation tardive de sa source. Je ne suis pas sûr d'avoir compris ce qu'il voulait dire, et je me demandais s'il avait raison.