Astuce Silverlight : Prise en charge des collections de données en Silverlight - #S014

image

Silverlight fournit un certain nombre d’options pour les collections de données, du stockage à la récupération. Dans cette astuce, je vais montrer différent moyens de le faire. Vous aurez besoin d’ajouter l’instruction using à votre page pour référencer : System.Collections ;

BitArray. BitArray est une classe que vous pouvez instanciée qui permet de gérer une collection de valeurs de type bit qui sont représentées soit par true (1) ou false (0). L’exemple suivant est une implémentation de BitArray. Remarquez qu’il y a plusieurs constructeurs différents suivant les options de BitArray, nous n’en voyons qu’un seul.

 BitArray bitArray = new BitArray(4);
 
// Add

bitArray[0] = true;

bitArray[1] = false;

bitArray[2] = false;

bitArray[3] = true;
 
// Retreive

if (true == bitArray[1])
{
    //...
}
 List.  La collection List autorise de stocker n’importe quel type de données qui peuvent donc être accessible par un index. Dans le cas ci-dessous nous utilisons une chaîne mais vous pouvez la remplacer par n’importe quel type d’objet que vous souhaitez.
 List<string> test = new List<string>();
 
// Add data

test.Add("Hello");

test.Add("There");

test.Add("Goodbye");
 
// Retrieve "Goodbye"

string data = test[2];

Stack. Stack (Pile) est toujours dernier entré, premier sorti. C’est la dernière donnée qui a été insérée dans la pile via l’appel à la méthode Push() qui sera la première récupérée lors de l’appel de la méthode Pop(). Comme pour la collection List ci-dessus, vous pouvez y stocker n’importe quel type d’objet. Pour notre exemple ci-dessous, nous allons utiliser des entiers.

        Stack<int> stack = new Stack<int>();
 
stack.Push(5);

stack.Push(3);

stack.Push(4);
 
// Pop the 4 off the stack.

int test = stack.Pop();

Queue. Queue est premier entré, premier sorti. Les objets ajoutés via l’appel à la méthode Enqueue() et récupérés et ajoutés via l’appel à la méthode Dequeue(). Dans l’exemple ci-dessous, nous ajoutons 3 chaînes. Ensuite nous appelons la méthode Dequeue() pour supprimer la première chaîne insérée qui était « Premier ». Si nous faisons un nouvel appel à la méthode Dequeue() nous récupérerons la chaîne « Second ».

 // Ajouter des données
Queue<string> queue = new Queue<string>();

queue.Enqueue("Premier");

queue.Enqueue("Second");

queue.Enqueue("Troisième");
 
// Récupère la chaîne "Premier"

string test = queue.Dequeue();

LinkedList. LinkedList est une liste chaînée de nœuds. Vous avez directement accès à la tête et à la queue de la liste et vous pouvez énumérer les éléments du début de la liste à la fin. Dans l’exemple ci-dessous nous déclarons une classe appelée Node que nous stockons dans la liste chaînée.

 class Node
 {
     private int _ID;
  
     public Node(int ID)
     {
         _ID = ID;
     }
  
     public int ID
     {
         get { return _ID; }
         set { ID = value; }
     }
  
 };
  
 public partial class Page : UserControl
 {
     public Page()
     {
         InitializeComponent();
  
  
         // Add Nodes
         LinkedList<Node> _list = new LinkedList<Node>();            
         LinkedListNode<Node> headNode = _list.AddFirst(new Node(432));
         LinkedListNode<Node> lastNode = _list.AddAfter(headNode, new Node(200));
         lastNode = _list.AddAfter(lastNode, new Node(451));
         lastNode = _list.AddAfter(lastNode, new Node(14));
         lastNode = _list.AddAfter(lastNode, new Node(55));
  
         // Retrieve Nodes
         foreach (Node node in _list)
         {
             int ID = node.ID;
         }
         
     }
 }

Dictionary. Les dictionnaires stockent des données sous la forme d’une paire clef / valeur où la clef est utilisée pour identifier et récupérer les éléments stockés et les valeurs sont les données courantes stockées.

 Dictionary<int, string> myData = new Dictionary<int, string>();
 
// Store Data

myData.Add(4324, "Cat");

myData.Add(331, "Dog");

myData.Add(442, "Lion");

myData.Add(3444, "Tiger");
 
// Retrieve "Lion" by passing the key 3444

string animal = myData[442];

Syndication : Mike Snow’s Weblog
Traduction autorisée par Mike Snow.