2017-09-19 10 views
-4

同様のデータ構造を設計するより良い方法があるのだろうかと思っていました。コードのデータ構造の代替リストのリストC#

object --> list of objects --> list of lists

例は以下の通りです:

class Customer 
{ 
    public string Name {get; set;} 
    public string LastName {get; set;} 
} 

class Customers 
{ 
    public List<Customer> {get; set} 
} 

class MultipleLists_Customers 
{ 
    public List<Customers> {get; set;} 
} 
+2

要件を知らなくてもデザイン性を判断するのは難しいです。このデータ構造によって解決されている問題は何ですか? –

答えて

0

デザインは、問題領域を表すについてですので、あなたのデザインがいくつかの名前を変更する....問題が何であるかによって、良いか悪いかもしれません物事、それは何かのためにかなり有効かもしれません。

class Customer 
{ 
public string Name {get;set;} 
public string LastName {get; set;} 
} 

class Vendor 
{ 
    public string Name {get; set;} 
    public List<Customer> Customers {get;set} 
} 

class Organization 
{ 
    public string Name {get; set;} 
    public List<Vendor> Vendors {get;set;} 
} 
0

キースが指摘しているように、改名は良いスタートです。あなたが本当にしたいすべてのオブジェクトのリストのリストを表すオブジェクトである場合、あなたは、単にジェネリックをネストすることによって、新たなデータ構造を作成せずにそれを達成することができます

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; } 
} 
0

は、最も基本的な方法はこれです:

class Customer 
{ 
    public string Name {get; set;} 
    public string LastName {get; set;} 
} 

class MultipleLists_Customers 
{ 
    public List<Customer> Customers {get; set;} 
} 
関連する問題