Я хотел бы сделать пользовательскую операцию над членами списка и иметь возможность указать, на каком свойстве я буду ее выполнять, но мне трудно найти правильный синтаксис для возврата результата в свойство.Выполнение пользовательской операции для каждого элемента списка <T>
Пример:
У меня есть список таких терминов, как показано ниже, и хотел бы, чтобы нормализовать их «Частота».
public class Term
{
public string Name { get; set; }
public double Frequency { get; set; }
public double Weight { get; set; }
}
Используя некоторый синтаксис, как это я должен быть в состоянии указать свойство я делаю операцию на:
List<Term> list = Normalize(artist.Terms, s => s.Frequency);
(здесь это «Frequency» на «Term», но я должен быть в состоянии делать что-либо имущества любого типа, тип недвижимости всегда будет двойной)
Так вот что я созданный, но я не могу узнать, как выполнить операцию, ни присвоение результата к свойству:
private static List<T> Normalize<T>(List<T> elements, Func<T, double> func)
{
List<T> list = new List<T>();
double fMin = elements.Min(func);
double fMax = elements.Max(func);
double fDelta = fMax - fMin;
double fInv = 1.0d/fDelta;
for (int i = 0; i < elements.Count; i++)
{
T t = elements[i];
// What should I do from here ?
//double invoke = func.Invoke(term);
//term.Frequency = (term.Frequency - fMin) * fInv;
}
return list;
}
Как бы вы это достигли?
Отлично, спасибо. – Aybe