Если ваш метод использует лямбду:
Func<Pet, T> getData
Попробуйте что-то вроде:
public Tuple<T, int> GetMostCommonProperty<T>(IEnumerable<Pet> pets,
Func<Pet, T> getData)
{
var petGroups = from p in pets
let data = getData(p)
where data != null
group p by new { Data = data, p.PetId } into gp
select new { Data = gp.Key.Data, Count = gp.Count() };
var element = petGroups.OrderByDescending(s => s.Count).First();
return Tuple.Create(element.Data, element.Count);
}
Пример использования:
Tuple<string, int> mostCommonName = GetMostCommonProperty(PetsAgeDataTable,
pet => pet.Name);
Обратите внимание, что вам нужен общийтип возврата здесь (если это не всегда int
).Вы не можете вернуть анонимный тип, но вам нужно что-то вернуть.Здесь я выбрал Tuple, но у вас есть много вариантов, в зависимости от того, как вы собираетесь его использовать.