List of two different Types in C#

I'm currently having a problem with a ShoppingCart for my customer.

He wants to be able to add Text between the CartItems so I was wondering if there is some way to still only have one List.

My solution would be to have two lists, one of type IList that gets iterated over when calculating Weight and overall Price of the Cart while having another IList that only exposes the necessary fields for displaying it in the ListView and that is a SuperType of CartItem. (But how do I then access additional fields for the listView, defaulting weight and price to 0 in the Description-Text-Class would break LSP).

But having two lists somehow feels a bit odd (and still gives me problems), so I was wondering if I could do some sort of a TypedList where I specify the Type of each item.

Any suggestions are welcome, I'm not really happy with both options.

Answers


Use an interface:

 ICartListItem

And make your list be:

 List<ICartListItem>

Now, create several types, have all of them implement this interface, and you can store them all safely in your list.

Alternatively, if you want there to be some default logic in a CartItem, use a base class instead of an interface.


Need Your Help

Windowing and lossless compression

audio flac lossless-compression lossless

I'm studying how FLAC works, although my question is valid for any lossless codec.

How can I properly position the arrows in my jQuery navigation menu?

javascript jquery html css

I am making a horizontal navigation menu with vertical dropdowns using CSS and jQuery. I would like to add an arrow to all top-level links that have sub-menus to indicate that they have sub-menus....

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.