2014-10-04 19 views
6

Con una List<String> è possibile modificare un elemento semplicemente con questo:modificare un elenco <Tuple> voce

var index = List.FindIndex(s => s.Number == box.Text); 
List[index] = new String; 

Ma, come applicarla su una List<Tuple<string, string>> per esempio?

+2

ti penso significa 'Elenco >'. –

+0

@MattBurland non c'è estensione 'Numero' per' s' con una 'Lista ' .. ma apparentemente con la soluzione 'AD.Net' devo usare s.item1 – Enumy

risposta

4
var tuple = List.Find(s => s.Item1 == box.Text); 
//assuming you're searching for the first string, but you can change the predicate anyway. 
tuple = new Tuple<string, string>(new String, tuple.Item2); 

Come accennato in altra risposta, si può ovviamente utilizzare l'indice troppo, ma si può anche solo trovare l'oggetto e lo aggiorna, che dovrebbe funzionare pure.

+0

Questo non ha cambiato la lista per me. Ha appena creato una variabile locale che è stata gettata via. – Binarian

7

È possibile trovare l'indice in un modo simile - mediante l'applicazione di una condizione per ogni tupla dalla lista:

var index = listOfTuples.FindIndex(t => t.Item1 == box1.Text || t.Item2 == box2.Text); 

È possibile sostituire un elemento chiamando Tuple.Create:

listOfTuples[index] = Tuple.Create(box3.Text, box4.Text); 
Problemi correlati