Gibt es eine Möglichkeit um eine Liste zu definieren<> zwei Elemente string-array?
Will ich bauen zwei-dimensionale array von strings, wo die Länge von einer Dimension ist 2. Ähnlich wie diese
string[,] array = new string[,]
{
{"a", "b"},
{"c", "d"},
{"e", "f"},
{"g", "h"}
}
Tun
List<string[]> list = new List<string[]>();
list.Add(new string[2] {"a", "b"});
list.Add(new string[2] {"c", "d"});
list.Add(new string[2] {"e", "f"});
list.Add(new string[2] {"g", "h"});
list.ToArray();
gibt mir
string[][]
aber nicht
string[,]
array.
Einfach nur neugierig, gibt es einige trick zu bauen dynamisch
string[,]
array irgendwie?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, du könntest einigermaßen leicht schreiben Sie eine Erweiterung Methode, es zu tun. So etwas wie dieses (nur getestet, sehr leicht):
Es ist eine leichte Schande, dass der obige code verwendet T[] als Typ des Elements. Aufgrund der generischen Invarianz kann ich derzeit nicht machen Quelle
IEnumerable<IEnumerable<T>>
das wäre schön. Eine alternative könnte die Einführung einer neuen type-parameter mit einer Einschränkung:Etwas haarig, aber es sollte funktionieren. (Offensichtlich ist die Umsetzung muss einige änderungen zu, aber das Grundprinzip ist das gleiche.)
Können Sie dies tun.
Wobei die Idee, dass die Schlüssel-Wert-Paar würde imitieren Sie das array von Zeichenfolgen, die Sie repliziert.
Der einzige Weg, es zu tun, wäre die Umsetzung der
ToArray()
Funktion selbst. Könnten Sie implementieren es in Ihre eigene Sammlung (d.h.StringTupleCollection
). Dies könnte die gleiche Arbeit, wieArrayList
(d.h. die interne array-Erhöhung in der Größe wie benötigt).Aber ich bin mir nicht sicher, der Vorteil von
[x,2]
über[x][2]
(oder sogarList<string[2]>
wäre groß genug, um den Aufwand.Könnte man auch schreiben
StringTupple
- Klasse als:Dies ist nicht möglich, mit einem
List<string[]>
als Typstring[,]
unterscheidet sich vonstring[]
.KeyValuePair nicht für mich arbeiten, wenn ich hatte, um rufen Sie die Werte der Kontrollkästchen auf der controller als mein Modell.Rollen Liste war null.
Die KeyValuePair-Struktur nicht über einen parameterlosen default-Konstruktor, und kann nicht instanziiert werden, indem der binder Modell. Ich empfehle eine benutzerdefinierte Modell-Klasse für Ihre Ansicht, dass gerade diese Eigenschaften. ASP.NET MVC-3 binding-Benutzer-Steuerelement vom Typ KeyValuePair zu ViewModel
Fand ich eine Implementierung einer checkboxlist, ohne die Verwendung von html-helper auf den folgenden link CheckboxList in MVC3.0