J'ai une liste de tuples. J'ai besoin d'obtenir l'un de ces tuples à l'aide de Linq et de changer l'élément2 de celui-ci.
J'ai essayé de le faire directement comme ça: mais il n'a pas compilé.
J'ai aussi essayé de le faire donc: p> mais tuple ne fonctionne pas comme une variable de référence p> donc, comment devrait-il être fait? p> p>
3 Réponses :
Selon Docs , Vous devez soit créer un nouveau tuple avec une valeur modifiée et le reste laissé identique, ou créer une classe à utiliser au lieu de ce tuple qui aura des propriétés mutables. P> tuplle.item1 code> n'a qu'un getter, ce qui signifie qu'il s'agit d'une propriété en lecture seule. P>
Les tuples sont immuables em>; Vous ne pouvez pas changer em> tuple existant, mais vous pouvez créer un nouveau em> one: ou p>
Les tuples de valeur sont en fait des structures mutables.
TUPLE
privé Readonly T1 M_Item1; Code> et
privé Readonly T1 M_Item2; Code>
ValueTupple code> est une structure mutable
Oui, mais le code n'est certainement pas sur tuple code> de la classe, mais sur la valeur des tuples sinon
(int, int) tuple = tuple.first (S => S.Item1 == i); Code > ne compilera pas.
Si tuples code> est un tableau Vous pouvez modifier la valeur de cette façon (comme avec une autre structure mutable):
tuple = (tuple.item1, tuple.item2 + valeur); Code> Les tuples sont immuables i>, vous ne pouvez pas les changer, mais peut recréer
Parce que tuple est
struct code> et type de valeur, vous devez créer une nouvelle instance.