C#中两种不同类型的列表

Tig*_*ine 4 c# listview list

我目前正在为我的客户购买ShoppingCart.

他希望能够在CartItems之间添加Text,所以我想知道是否还有一些方法仍然只有一个List.

我的解决方案是有两个列表,一个类型IList,在计算重量和购物车的整体价格时迭代,同时有另一个IList,它只公开在ListView中显示它的必要字段,并且是CartItem的超类型.(但是,如何访问listView的其他字段,在Description-Text-Class中将默认权重和价格设置为0会破坏LSP).

但是有两个列表感觉有点奇怪(并且仍然给我带来问题),所以我想知道我是否可以做一些TypedList,其中我指定每个项目的类型.

欢迎任何建议,我对这两个选项都不满意.

Fly*_*wat 18

使用界面:

 ICartListItem
Run Code Online (Sandbox Code Playgroud)

并列出您的清单:

 List<ICartListItem>
Run Code Online (Sandbox Code Playgroud)

现在,创建几种类型,让所有类型都实现此接口,并且可以将它们安全地存储在列表中.

或者,如果您希望CartItem中有一些默认逻辑,请使用基类而不是接口.