Я пытаюсь создать функцию, которая возвращает универсальный c тип контейнера, который принимает в качестве входных данных два других универсальных c типа контейнера с обобщенными c оценщиком (оценщиками) / делегатами.
Я хочу избежать беспорядка с большим количеством имен классов, если это возможно, но я сделаю это, если это необходимо ...
Нужно ли создавать другой (избыточный) класс generi c просто для этого?
Примечание: Мне нужно использовать Visual Studio 2013 .
Пример кода:
delegate bool MyEval1<T>(T a);
delegate bool MtEval2<T>(T a, T b);
// This does not compile...
List<T> SomeNiceFunction<T>(List<T> l1, List<T> l2, MyEval1<T> e1, MyEval2<T> e2) {
List<T> result = new List<T>();
foreach(var elem in l1) {
var match = l2.FirstOrDefault(o => e1(o) && e2(o, elem));
if (match != null)
result.Add(match);
}
//... (some more code goes here)
return result;
}
Заранее спасибо: -)
Редактировать После некоторой помощи, приведенной ниже, я могу обобщить ее следующим образом:
public static class Mumbo
{
static List<T> Jumbo<T>(List<T> l1, List<T> l2, MyEval1<T> e1, MyEval2<T> e2) {
List<T> result = new List<T>();
// code goes here
return result;
}
}
Теперь это работает ... Спасибо: -)