Это длинный выстрел, я знаю...
Скажем, у меня есть коллекция
List<MyClass> objects;
и я хочу запустить тот же метод для каждого объекта в коллекции с возвращаемым значением или без него. До Linq я бы сказал:
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));
}
Я бы люблю, чтобы иметь возможность сделать что-то вроде этого:
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)));
Я не нашел ничего, что сделает это. Есть ли такая вещь?
Если нет ничего общего, как я уже говорил выше, по крайней мере, возможно, есть способ сделать это для целей, над которыми я сейчас работаю: у меня есть коллекция одного объекта, который имеет класс-оболочку:
class WrapperClass {
private WrappedClass wrapped;
public WrapperClass(WrappedClass wc) {
this.wrapped = wc;
}
}
В моем коде есть коллекция List<WrappedClass> objects
, и я хочу преобразовать ее в List<WrapperClass>
. Есть ли какой-то умный способ Linq сделать это, не выполняя утомительный
List<WrapperClass> result = new List<WrapperClass>();
foreach (WrappedClass obj in objects)
results.Add(new WrapperClass(obj));
Спасибо...