Bonjour tout le monde,
En m'adonnant a la manipulation de listes j'ai eu quelques soucis en essayant de trouver une méthode pour changer des valeurs précises dans celles-ci.
Je m'explique: Je reçois un type personnalise de tableau, appeler ArrayOfString, de la part d'un Web Service. Jusqu'à la rien de très compliquer. J'ai une classe(Friends) auquel je rajoute sous forme de list<T> les valeurs extraites de mon Tableau(comme le nom, leur id, leur message et leur statut=> en-ligne ou hors-ligne). Je bind cette liste nouvellement créée a une Listbox et j'affiche correctement tous mes éléments dans celle-ci. Par la suite, afin de mettre a jour ma liste d'amis, je vais recevoir un autre tableau( plus petit cette fois) ou sera inscrit l'ID de mes amis et leur nouveau statut. Ce que je souhaite faire c'est dans ma liste déjà créée mettre a jour les informations que je veux:
- Rechercher la ligne correspondante a l'ID de mes amis(qui est unique).
- Et changer en conséquence la valeur de statut se trouvant sur la même ligne.
Voici le code de ma 'class' que j'utilise pour la liste:
Voici la création de ma liste en tout premier lieu:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class Friends { public string Friend_ID { get; set; } public string Name { get; set; } public string Message { get; set; } public string FriendAvatar { get; set; } public int Status { get; set; } public string Status_Image { get; set; } }
Grâce a LINQ j'ai su extraire des informations et trouver ce que je cherchais mais impossible de trouver une méthode pour y insérer la valeur que je veux modifier. J'avais penser convertir ma liste en tableau, changer la valeur souhaiter et ensuite la reconvertir en liste mais je trouve cette option peu optimisée et peu esthétique.
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 public List<Friends> GetFriend(Test.ArrayOfString friend_info_tab) { List<Friends> friend = new List<Friends>(); int i = 1; int array_length; array_length = friend_info_tab.Count; ErrorMSG.Text = "Friend array length " + Convert.ToString(array_length); if (array_length == 1) ErrorMSG.Text = "No friends reported"; else if (array_length > 1) { while (i < array_length) { friend.Add(new Friends() { Friend_guid = friend_info_tab[i], Name = friend_info_tab[i + 1], Message = friend_info_tab[i + 2], FriendAvatar = Get_avatar(friend_info_tab[i]), Status = 0, Status_Image = "/AfinosWeb;component/Image/contact/offline.png" }); i = i + 3; } } return friend; }
J'espère avoir été assez clair et que ma question ne sera pas trop stupide car bien qu'ayant lu une documentation entière parlant de LINQ je n'ai toujours pas trouver réponses a mes questions.
Cordialement, Ephismen.
Partager