Bonjour, Bonsoir,
(oui je pense qu'il faudra bientôt créé un forum juste pour mes questions bêtes^^...)
Alors plusieurs questions:
1: Est-il possible de mettre une ArrayList que j'ai initialisé, dans un ComboBox en tant que collection avec une simple ligne de code (sans avoir à ajouté item par item). Si oui, comment?
2: Est-il possible de rétablir la couleur de base d'un control? Si oui, comment?
3: Est ce que vous connaissez un site qui liste toutes les méthodes possible ( de manière "compacte" du même style que ce que j'ai fait juste en dessous durant plusieurs heures en piochant les différentes méthodes par ici et par la ....)
Merci d'avance pour vos réponses
List / ArrayList :
Il y a les List, comme dans l'exemple simpliste. On a un Index pour repérer les éléments.(Pas de clé).
Hashtable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Imports System.Collections Dim L As New ArrayList() 'On crée une collection ArrayList Imports System.Collections.Generic Dim lst As New List(Of Decimal) 'Créons une liste ne contenant que des 'Decimal'. L.Add("Bonjour") 'On ajoute un élément à la collection Dim L As ArrayList = ArrayList.Repeat("A", 5) 'On crée une ArrayList de 5 éléments contenant chacun "A" (on répète "A") i = L(0) 'Affiche le 1er élément i = L.Count 'On affiche le nombre d'élément. L.Remove("Bonjour") 'On enlève l'élément de la liste qui contient "Bonjour" L.RemoveAt(0) 'On enlève l'élément 0 de la liste L.Sort() 'Trie la collection L.Clear() 'Efface tous les éléments L.Contains (élément) ' Retourne True si la liste contient élément. L.Insert( position, Ainserrer) ' Insérer à un index spécifié L.Containts (élément) ' Retourne True si la liste contient 'élément'. i = l.BinarySearch("lulu") ' Cherche le string dans une collection trié L.Add(Nothing) 'est accepté: on ajoute un élément vide lst.Remove("lulu") 'supprime le premier élément contenant "lulu" lst.RemoveAt(3) 'supprime le 4ème élément lst.RemoveRange(3,2) 'supprime du 4ème élément au 5ème élément lst.IndexOf("lulu") 'retourne l'index de l'élément qui contient "lulu" lst.IndexOf("lulu", 2,7) recherche à partir de l'élément 2 et sur 7 éléments. Dim array(14) As String 'tableau lst.CopyTo(array) 'copier la list dans le tableau lst.CopyTo(array, 6) 'copier 6 éléments de la list dans le tableau lst.CopyTo(2, array, 12, 3) 'index de départ dans list, tableau, index de départ dans array, nombre
C'est un 'Dictionnaire' qui comporte des couples clé-élément, des paires clé-valeur.
Ces couples sont de type Objet-Objet.
La clé toujours unique permet de retrouver la valeur, La clé ne doit pas être vide non plus.
Dictionnary
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim H As New Hashtable H.Add(Clé,Valeur) 'Ajoute un élément H.Item(Clé) 'Retourne l'élément correspondant à une clé. H.ContainsKey(Clé) 'Retourne True si la Clé est dans la table. H.ContainsValues(Valeur) 'Retourne True si la valeur est dans la table. H.Clear 'Efface tous les éléments H.Remove(Clé) 'Supprime l'élément ayant une clé spécifiée. i = H.Item("trois") 'Recherche la valeur correspondant à la clé "trois"
A partir de VB 2005, il y a cette collection de type Dictionnaire (Clé-Valeur) mais elle utilise les génériques.
La clé doit être unique (pas de doublon de clé).
La récupération d'une valeur à partir de sa clé est très rapide.(Utilisation d'un hachage)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Dim Dic As New Dictionary(Of String, String) ' Créons un Dictionnary avec des clés de type String et des valeurs de type String. If Not Dic.ContainsKey("ht") Then ' Ajout d'élément en vérifiant si la clé n'existe pas Dic.Add("ht", "hypertrm.exe") End If Dic("doc") = "winword.exe" ' Modifier la valeur correspondant à la clé 'doc' i = "winword.exe" ' Récupérer une valeur correspondant à une clé Dic.Remove("doc") 'Enlever un élément Dic.ContainsKey("ht") ' permet aussi de tester si une clé existe.
SortedList
Combine List et Dictionnaire avec un tri automatique.
Il permet l'accès aux valeurs par l'intermédiaire des clés associées ou des index.
C'est un hybride de HashTable et de Array.
La séquence d'index est basée sur la séquence de tri. Quand un élément est ajouté, il est inséré dans l'ordre de tri adéquat, et l'indexation s'ajuste en conséquence. Le tri est donc automatique.
Les SortedList(Of..) sont des SortedList génériques avec Clé et valeur ,triées sur la clé. Ressemble à SortedDictionary, mais occupe moins de mémoire et est moins rapide pour les insertions/suppressions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 mySL.Add(Clé,Valeur) ' Permet dajouter un élément mySL.Item(CLE) 'retourne la valeur correspondant à la clé CLE mySL.GetKey(3) 'retourne la Clé qui est dans l'élément d'index 3 mySL.GetByIndex(3) 'retourne la valeur qui est dans l'élément d'index 3 mySL.Count 'Nombre d'éléments mySL.Capacity) 'nombre d'éléments possible,automatique, on n'a pas à s'en occuper.
Les SortedDictionnary(Of..) sont des collections génériques avec Clé et valeur ,trié sur la clé.
String Collection
L'espace System.Collections.Specialized fournit ces nouveaux types de collection très spécifiques, elles ne sont faites que pour un seul type:
StringCollection ne peut contenir que des chaînes (cela devrait aller plus vite)
Tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Dim myCol As New StringCollection() ' Créer une StringCollection. Dim myArr() As [String] = {"rouge", "vert", "orange", "vert",) 'Créer un tableau de String, l'ajouter( en fin) à la collection. myCol.AddRange(myArr) myCol.Add("marron") 'Ajouter un élément à la fin de la collection myCol.Insert(3, "bleue") 'Insérer un élément à l'index 3 myCol.Remove("orange") 'Enlever un élément myCol.Contains("jaune") ' La collection contient t'elle "jaune"? Dim myArr2(myCol.Count) As [String] ' Copie la collection dans un tableau. myCol.CopyTo(myArr2, 0) myCol.Clear() ' Efface toutes les strings de la Collection.
Les tableaux vous permettent de faire référence à un ensemble de variables par le même nom et d'utiliser un numéro, appelé index ou indice, pour les distinguer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Dim Tableau(3) As Integer ' Déclarer le tableau Pour un tableau à 2 dimensions le premier argument représente les lignes, le second les colonnes. Dim T(2,2) ' 3 X 3 éléments T(1,1)=33 ' Pour mettre 33 dans l'élément central: i = S.Split(Separateur) ' Découpe une string et la met en tableau Erase Tableau ' Erase efface le tableau et récupère l'espace. Array.Clear(t, 2, 3) ' Réinitialisation tableau t à partir de l'élément 1 et pour 3 éléments. b = a 'Copie le tableau a dans b Array.Clear(Mois,0,2) 'Efface 2 éléments du tableau Mois à partir de l'élément 0. Array.Reverse(Mois, 1, 3) 'inverse les 3 éléments à partir de l'élément 1. Array.Copy(Mois,1,Mois2,1,20) 'copie 20 éléments de Mois vers Mois2 à partir du 2eme élément. Array.sort(Mois) 'Trie le tableau Mois I=Array.BinarySearch(Mois, "Février") 'retourne I=1 se souvenir le premier élément est Mois(0) Dim myIndex As Integer = Array.IndexOf(myArray, myString) 'retourne l'index de la première occurrence. Retourne -1 si l'élément n'est pas trouvé. Dim Indice, MonTableau(10, 15, 20) Indice = UBound(MonTableau, 1) ' Retourne 10. (1 indique la première dimension du tableau) Indice = MonTableau.GetUpperBound(0) '( 0 pour première dimension!!) Retourne 10. i = S.Length 'retourne un entier qui représente le nombre d'éléments total dans le tableau.
Partager