L'utilisation de Linq pour exécuter une méthode sur une collection d'objets?

C'est un long shot, je sais...

Disons que j'ai une collection

List<MyClass> objects;

et je veux exécuter la même méthode sur chaque objet de la collection, avec ou sans valeur de retour. Avant de Linq, j'aurais dit:

List<ReturnType> results = new List<ReturnType>();
List<int> FormulaResults = new List<int>();
foreach (MyClass obj in objects) {
  results.Add(obj.MyMethod());
  FormulaResults.Add(ApplyFormula(obj));
}

Je amour pour être en mesure de faire quelque chose comme ceci:

List<ReturnType> results = new List<ReturnType>();
results.AddRange(objects.Execute(obj => obj.MyMethod())); 
//obviously .Execute() above is fictitious
List<int> FormulaResults = new List<int>();
FormulaResults.AddRange(objects.Execute(obj => ApplyFormula(obj)));

Je n'ai pas trouvé quelque chose qui va le faire. Est-il une telle chose?

Si il n'y a rien de générique, comme je l'ai posée ci-dessus, à moins peut-être il ya un moyen de le faire aux fins je travaille en ce moment: j'ai une collection d'un objet qui a une classe wrapper:

class WrapperClass {
  private WrappedClass wrapped;
  public WrapperClass(WrappedClass wc) {
    this.wrapped = wc;
  }
}

Mon code a une collection List<WrappedClass> objects et je veux convertir un List<WrapperClass>. Est-il intelligent de Linq façon de faire cela, sans faire le fastidieux

List<WrapperClass> result = new List<WrapperClass>();
foreach (WrappedClass obj in objects)
  results.Add(new WrapperClass(obj));

Merci...

OriginalL'auteur Shaul Behr | 2009-06-23