Modification d'un élément d'une liste [Résolu]

Signaler
Messages postés
670
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
-
Messages postés
670
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
-
Bonjour

J'essaye de modifier un element d'une liste mais j'y arrive pas
(qu'est ce que c'est fastidieux la programmation de base en C# quant on a l'habitude du C)

Voici ce que je fais

        kAdr.AddrId = (int)addr["addrID"];
        fid = AddrLst.BinarySearch(kAdr, compareId);
        if (fid>=0)
        {
          AddrLst[fid].active = true;
        }
      }

Mais le compilo n'aime pas
Est-il possible en C sharp #@!!;-(( de modifier un element d'une liste ?

Merci pour les benevole qui peuvent m'aider a comprendre

4 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
44
AddrList est une structure ? C'est certainement le cas :)

Soit tu le modifie en class, soit tu copies sa valeur dans un objet temporaire et tu le réaffectes ensuite a AddrList

AddrLidt temp = AddrList[i]
temp.active = true;
addrList[i] = temp ;

J'ai trouvé ce post qui devrait t'eclairer sur le pourquoi du comment

Mx
MVP C# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
44
Salut,

Et il dit quoi le compilo ?
Dur de t'aider quand on ne sait pas de quel Type sont tes objets

Mx
MVP C# 
Messages postés
670
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
3
Bonsoir.
Désolé je pensais que j'avais fais une erreur d'inocent ec C# qui allait sauter aux yeux

Voici ce que me dit le compilo

Error 2 Cannot modify the return value of 'System.Collections.Generic.List<TestMysql.Main.AddrList>.this[int]' because it is not a variable D:\projets\testMysql\TestMysql\Main.cs 422 11 TestMysql
Messages postés
670
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
3
Merci a toi

Yes c'est clair et j'ai encore apris un truc !
Mais j'aurais a priori misé sur l'inverse : struct=ref class=value
Mais c'est l'habitude du C