2016-05-16 6 views
0

Ich habe drei Klasse:C# - Objekt zurückgeben eine Länge Array

public class Customer 
{ 
    public string FirstName { get; set; } 

    public string LastName { get; set; } 
}; 

public class count 
{ 
    public int number 
    { 
     get 
     { 
      return 1; 
     } 
     set 
     { 
     } 
    } 
} 

public class myclass 
{ 
    public Customer[] Customer { get; set; } 

    public count number { get; set; } 
} 

Und ein Beispiel:

myclass myclass = new myclass() 
{ 
    Customer = new Customer[] 
    { 
     new Customer() 
     { 
      FirstName = "FirstName1", 
      LastName = "LastName1" 
     }, 
     new Customer() 
     { 
      FirstName = "FirstName2", 
      LastName = "LastName2" 
     } 
    }, 
    number = new count() 
}; 

Ich möchte die Eigenschaft count.number die Anzahl der Kunden in meinem Array Kunde [zurück ].

Ich muss eine andere Klasse haben die Anzahl der Elemente meiner Array Kunde []

Wie zu tun zu bekommen?

Th

+0

Wie wäre es mit 'Kunden.Langht'? – raidensan

Antwort

2

Ihre Eigenschaft sollte nicht einen Setter haben, sollte es nur um die Länge des Array zurück dynamisch. Etwas wie folgt aus:

public class myclass 
{ 
    public Customer[] Customer { get; set; } 

    public int number 
    { 
     get { return Customer.Length; } 
    } 
} 

Dann müssen Sie nicht manuell einstellen (oder, was noch wichtiger ist, manuell halten es wie die Array-Änderungen synchronisiert).

Wenn Sie müssen diese ganze Zahl in einer Klasse wickeln (was sollten Sie wirklich nicht müssen, aber was auch immer), dann wieder nur eine Instanz dieser Klasse:

public class myclass 
{ 
    public Customer[] Customer { get; set; } 

    public count number 
    { 
     get { return new count { number = Customer.Length; } } 
    } 
} 

immer Sie Struktur es (das ist, aus welchem ​​Grund auch immer Sie primitive Werte in Klassen umhüllen), der Punkt ist, dass Sie die .Length eines Arrays im laufenden Betrieb abrufen können, ohne manuell selbst nachverfolgen zu müssen. Das Array weiß, wie lange es ist.