C'est la Liste<T>.Méthode ForEach() disparu?

J'ai commencé à barboter dans Windows 8 metro récemment, et a constaté que l'un de mes vieux copains semble avoir disparu.

J'ai tendance à utiliser le .ForEach() la méthode que j'ai utiliser le traditionnel foreach() construire, et j'ai réalisé assez vite que cette méthode n'est pas disponible. Par exemple, ce code ne compile pas sous une appli metro:

var list = new List<string>();

list.ForEach(System.Diagnostics.Debug.WriteLine);

J'ai cherché pour voir si je pouvais trouver toutes les discussions de cela, mais n'a pas pu. Suis-je tout simplement d'être obtus, ou est-il réellement disparu?

  • IEnumerable<T> n'a jamais eu un ForEach de la méthode d'extension seulement IList<T> il a
  • Vous, monsieur, sont corrects. J'ai été prématurément générique. Je vais changer la question du titre.
  • J'ai fait la même erreur - dit le titre IEnumerable mais l'exemple de la tente manifestement d'une liste. Edit: le Titre mise à jour 🙂
  • Pourquoi est-ce mieux qu'un foreach bloc?
  • Ils sont les mêmes pour toutes fins pratiques. C'est une question de préférence personnelle; si List<T>.ForEach qui pourrait être plus simple à lire pour les one-liners.
  • mais, sont-one-liners plus simple à lire? Je suppose que le point est discutable.
  • Il ne l'est pas, c'est en fait pire (par la mise en œuvre, mais en général, je ne vois pas d'avantage).
  • Eh bien, le titre est toujours incorrect (techniquement) parce que ce n'est pas une méthode d'extension. C'est d'un ordinaire de la méthode d'instance sur List<T>.

InformationsquelleAutor Robaticus | 2012-04-24