我有一个函数,可以在其中发送项目所有类型的所有对象,并且应该遍历属性并输出其值:
public void ShowMeAll(IEnumerable<object> items);
IEnumerable<Car> _cars = repository.GetAllCars();
ShowMeAll(_cars);
IEnumerable<House> _houses = repository.GetAllHouses();
ShowMeAll(_houses);
好的,例如,是这样。现在,我想将一个属性发送到我的ShowMeAll函数中,该属性将通过OrderBy我的物品然后输出。使用function参数执行此操作的最正确方法是什么?
最佳答案
最简单的方法是让LINQ通过the OrderBy() method为您执行此操作。例如:
IEnumerable<Car> _cars = repository.GetAllCars();
ShowMeAll(_cars.OrderBy(car => car.Make));
IEnumerable<House> _houses = repository.GetAllHouses();
ShowMeAll(_houses.OrderBy(house => house.SquareFootage));
这样,您就不需要
ShowMeAll
来知道传入的对象的属性。因为您要传递List<object>
,所以我认为这是需要的。 :)