2014-10-04 1 views
6

Mit einem List<String> Sie ein Element einfach mit diesem bearbeiten:Bearbeiten einer Liste <Tuple> Artikel

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

Aber, wie es auf einem List<Tuple<string, string>> zum Beispiel bewerben?

+2

Ich glaube, Sie meine 'List >'. –

+0

@MattBurland gibt es keine Erweiterung 'Nummer' für' s' mit einer 'Liste ' .. aber anscheinend mit 'AD.Net's Lösung muss ich am.item1 verwenden – Enumy

Antwort

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); 

Wie in der anderen Antwort erwähnt, können Sie natürlich auch den Index verwenden, aber Sie können auch feststellen, nur das Objekt und aktualisieren Sie es, das so gut funktionieren sollte.

+0

Das änderte die Liste für mich nicht. Es hat nur eine lokale Variable erstellt, die weggeworfen wurde. – Binarian

7

Sie können den Index in einer ähnlichen Art und Weise finden - durch eine Bedingung jedes Tupel aus der Liste der Anwendung:

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

Sie ein Element Tuple.Create durch den Aufruf ersetzen:

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