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

标签 c# listview list

目前我的客户的 ShoppingCart 有问题。

他希望能够在 CartItems 之间添加文本,所以我想知道是否有某种方法仍然只有一个列表。

我的解决方案是有两个列表,一个是 IList 类型,它在计算购物车的重量和总价格时被迭代,而另一个 IList 只公开在 ListView 中显示它的必要字段,这是一个 SuperType购物车项目。 (但是我如何访问 listView 的其他字段,在 Description-Text-Class 中默认重量和价格为 0 会破坏 LSP)。

但是有两个列表不知何故感觉有点奇怪(而且仍然给我带来问题),所以我想知道我是否可以做某种 TypedList,在其中我指定每个项目的类型。

欢迎提出任何建议,我对这两个选项都不是很满意。

最佳答案

使用接口(interface):

 ICartListItem

让你的 list 成为:

 List<ICartListItem>

现在,创建几个类型,让它们都实现这个接口(interface),然后你就可以将它们安全地存储在你的列表中。

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

关于c# - C# 中两种不同类型的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/317279/

相关文章:

c# - WebClient.DownloadString 使用了错误的编码

java - 如何用Java代码重写或转换C#代码?

c# - 当接口(interface)在单独的项目中时处理枚举

java - getView 从未因我之外的原因被调用

python - : compound conditional expressions AND'd [python] 中的 while 循环条件

java - 如何遍历Hashmap中的对象

c# - 如何在 asp.net 中只创建一个类的实例

windows - Delphi:具有自定义字体颜色的 ListView (vsReport) 单列标题标题?

android - 使用 CursorAdapter 维护 ListView 中的复选框状态

list - SwiftUI : How I can use confirmationDialog for each row of a list?