Простой пример,
// a Product can belong to many ProductCollections
class Product
{
// some properties
}
// a ProductCollection can contain many Products
class ProductCollection
{
public IList<Product> Products { get; private set; }
// ...
// other collection properties
}
Возможно, вы захотите сгруппировать / организовать продукты в общие коллекции и позволить конечному пользователю создавать новые коллекции.
Некоторые коллекции используются для отображения продуктов на веб-сайте, другие - для администрирования (лицо A отвечает за ..., лицо B - за другие продукты),
некоторые продукты хранятся в коллекции «нет в наличии», другие - в коллекции «необходимо обновить» и т. д. ...
В таком сценарии вы, скорее всего, всегда захотите получить продукты, используя определенную коллекцию.
И если вам нужны все коллекции, к которым принадлежит продукт, вы всегда можете написать для этого функцию.