2017-09-12 2 views
1

Je souhaite modifier la propriété de l'élément avant de l'ajouter à la liste LinkedList. L'élément que je vais ajouter a deux propriétés: ProductID et ProductValue comme ceci:Comment modifier la propriété LinkedList

public class Product 
{ 

    private byte _productID; 
    public byte ProductID 
    { 
     get { return _productID; } 
     set 
     { 
      _productID = value; 
      NotifyPropertyChanged("ProductID"); 
     } 
    } 

    private UInt16 _productValue; 
    public UInt16 ProductValue 
    { 
     get { return _productValue; } 
     set 
     { 
      _productValue = value; 
      NotifyPropertyChanged("ProductValue"); 
     } 
    } 

} 

Maintenant, je veux modifier ProductValue selon la ProductID précédente de l'élément dans LinkedList par exemple Si previous.ProductID = 1, puis next.ProductValue = previous.ProductValue + 1 Mais comment je devais obtenir la propriété en utilisant LinkedList<Product> dll = new LinkedList<Product>()? Merci d'avance!

+0

voulez-vous modifier ceci dans chaque article de la liste chaînée? Comment allez-vous le modifier dans le premier élément qui a une valeur précédente? –

+0

@MongZhu Sauf pour le premier car il n'a pas le noeud précédent. – user8595258

+0

Avez-vous essayé d'utiliser une boucle pour faire cela? –

Répondre

0

Alors, comment puis-je obtenir le ProductID dans LInkedList?

Vous pouvez obtenir un élément de la liste en utilisant la méthode ElemenAt pour accéder à un élément dans LinkedList.

En utilisant cette méthode, vous pouvez effectuer une itération avec une boucle forcée dans la collection. Vous pouvez obtenir un élément comme celui-ci:

Product previous = dll.ElementAt(i - 1); 

et accéder à la propriété comme ceci:

if (previous.ProductID == 1) 

Ce qu'il devrait rendre possible pour vous de découvrir le reste. Si vous avez encore des difficultés, laissez-moi un commentaire