正如基思注意到,重命名是一個好的開始。
如果你真正想要的是表示對象的名單列表的對象,就可以實現它沒有簡單地嵌套泛型創建新的數據結構:
public List<List<Customer>> CustomerLists;
這就是說,它似乎你試圖建模一個訂購系統。像這樣的伎倆:
class Customer
{
public Customer(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
public string FirstName { get; }
public string LastName { get; }
}
class Vendor
{
public Vendor(string name, IEnumerable<Product> products)
{
Name = name;
Products = new HashSet<Product>(products);
}
public bool HasStock(Product product, double quantity)
{
// determine if product is currently in stock...
}
public string Name { get; }
public HashSet<Product> Products { get; }
}
class Product
{
// ... common product data.
}
class Order
{
public Order(
DateTime createDate, Customer customer,
Vendor vendor, Product product, double quantity)
{
CreateDate = createDate;
Customer = customer;
Vendor = vendor;
Product = product;
Quantity = quantity;
}
public DateTime CreateDate { get; }
public Customer Customer { get; }
public Vendor Vendor { get; }
public Product Product { get; }
public double Quantity { get; }
}
很難判斷一個設計,不知道的要求。這個數據結構正在解決什麼問題? –