Jest to długi strzał, wiem ...Używanie Linq do uruchomienia metody na zbiorze obiektów?
Powiedzmy mam kolekcję
List<MyClass> objects;
i chcę uruchomić tej samej metody na każdym obiekcie w kolekcji, z lub bez powrotu wartość. Przed Linq bym powiedział:
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));
}
bym miłość, aby móc zrobić coś takiego:
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)));
nie znalazłem nic, że będzie to zrobić. Czy jest coś takiego?
Jeśli nic generic jakbym zakładał powyżej, przynajmniej może istnieje sposób, robi to dla celów pracuję teraz na: Mam kolekcję jednego obiektu, który ma klasy otoki:
class WrapperClass {
private WrappedClass wrapped;
public WrapperClass(WrappedClass wc) {
this.wrapped = wc;
}
}
Mój kod ma kolekcję List<WrappedClass> objects
i chcę ją przekonwertować na List<WrapperClass>
. Czy jest jakiś sprytny LINQ sposób to zrobić, nie robiąc żmudny
List<WrapperClass> result = new List<WrapperClass>();
foreach (WrappedClass obj in objects)
results.Add(new WrapperClass(obj));
Dzięki ...
+1 Ja lubię drugi lepszy :) –
OMG, to było takie proste ?? Cudowny! Uwielbiam LINQ !!! –