我有以下问题我不确定如何处理。
我需要对两组物品(前汽车和摩托车)进行分页。我需要按字母顺序排序的单个列表,单击该列表时将指向该项目的信息页面。这将以10个为一组显示,带有后退/下一个按钮。
我的实际类具有非常不同的属性集。我不想为汽车和摩托车提供单一课程。
这两个项目都有Id,Name和Description属性,但其余属性是唯一的(无论是汽车还是摩托车项目)。
对两个列表进行分组的最佳方法是什么,按字母顺序排序,然后选择所需的项目(例如合并列表中的项目11-20)?现在我通过执行以下操作(将其工作)将所有项目转换为DisplayItem类,但不适用于大型项目组。
IEnumerable<DisplayItem> entities = cars.Select(b => new DisplayItem(b)).Union(motorcycles.Select(a => new DisplayItem(a))).Skip(10).Take(10);
这样做的正确方法是什么?
谢谢!
答案 0 :(得分:4)
您可以创建一个接口,两个类都实现包含可排序属性的接口:
interface ISortableItem
{
string Name { get; }
}
答案 1 :(得分:2)
您可以使用Id,Name和Description属性创建一个接口,并让Car和Motorcycle类实现该接口。
public interface IDisplayable
{
int Id {get; }
string Name { get; }
string Description { get; }
}
public class Car : IDisplayable
{
...
}
然后你可以做
IEnumerable<IDisplayable> entities = cars.Select(b => (IDisplayable)b).Union(motorcycles.Select(a => (IDisplayable)a)).Skip(10).Take(10);