2009-12-02 5 views
0

J'ai une question à propos des listes imbriquées.Liste imbriquée Question

J'ai une classe similaire à ce qui suit ...

public class Order 
{ 
    private Guid id; 
    [DataMember] 
    public Guid ID { get { return id; } set { id = value; }} 

    private List<Items> orderItems; 
    [DataMember] 
    public List<Items> OrderItems { get { return orderItems; } set { orderItems= value; } } 

} 

public class Items 
{ 
    private string itemName; 
    [DataMember] 
    public string ItemName { get { return itemName; } set { itemName = value; }} 

} 

Cela semble être ok jusqu'à ce que je référence à la liste dans dans mon code en disant quelque chose de similaire à

if myItemName = this.order.orderItems[0].itemName 

Le problème vient quand j'ajoute le "[0] .itemName". Quelqu'un peut-il m'aider avec ce que je manque?

+0

ajouter le "[0] .itemName"? Voulez-vous dire attribuer une valeur ou ajouter? –

+1

Que se passe-t-il réellement? Une erreur de compilation? Erreur d'exécution? Est-ce que vous avez déjà assigné des orderItems ou est-il resté vide? – Foole

Répondre

2

Vous semblez essayer d'accéder au champ privé plutôt qu'à la propriété publique. Essayez: (notez le changement de casse)

myItemName = this.order.OrderItems[0].ItemName 

En outre, la syntaxe semble étrange, quelle langue utilisez-vous? Vouliez-vous dire:

if (this.order.OrderItems.Count > 0 && myItemName == this.order.OrderItems[0].ItemName) ... 
+0

c'était ma première réaction, il accède au domaine privé de la classe d'objet. – user29964

+0

oui c'était ça. Désolé tard dans la nuit, je ne sais pas comment l'objet privé était même apparaître dans InteliSense. Merci. – Kuruption

+0

Merci, vous pouvez marquer cette réponse comme acceptée si cela a résolu votre problème :) –