Problem z Tuple i właściwością tylko do odczytu

Problem z Tuple i właściwością tylko do odczytu
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam.
W programie mam następująca strukturę:

Kopiuj
List<Tuple<Dictionary<int, int>, int>> resultList = new List<Tuple<Dictionary<int, int>, int>>();

W dalszej części muszę przypisać odpowiednią wartość dla elementu drugiego klasy Tuple czyli:

Kopiuj
resultList[i].Item2 = value // jakaś wartość

Niestety właściwość Item2 jest tylko do odczytu. Jak mogę sobie z tym poradzić?

Zenek1999
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 51
0

Wartość Tuple możesz ustawić jedynie podczas tworzenia nowego obiektu.

Kopiuj
var resultList = new List<Tuple<Dictionary<int, int>, int>>();

// new
resultList.Add(new Tuple<Dictionary<int, int>, int>(new Dictionary<int, int>(), 7));
// czytelniejsze Tuple.Create()
resultList.Add( Tuple.Create(new Dictionary<int, int>(), 7));
  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki za odpowiedź. Niestety to nie rozwiązuje mojego problemu bo muszę zmienić wartość elementu już istniejącego. Może jest jakiś zamiennik dla Tuple?

DibbyDum
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Polska, Kraków
0

Zmieniaj całość:

Kopiuj
resultList[0] = new Tuple<Dictionary<int, int>, int>(resultList[0].Item1, 7); 
Zenek1999
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 51
1

Po prostu stwórz własną klasę.

Kopiuj
            var resultList2 = new List<MojeTuple>();

            resultList2.Add(new MojeTuple{Item1 = new Dictionary<int, int>() });
            resultList2[0].Item2 = 7;
Kopiuj
class MojeTuple
        {
            public Dictionary<int, int> Item1 { get; set; }
            public int Item2 { get; set; }
        };

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.