我有一个函数,可以在其中发送项目所有类型的所有对象,并且应该遍历属性并输出其值:

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>,所以我认为这是需要的。 :)

10-07 17:05