Was ist der Weg Range "A" ... "Z" wieC# Enumerable Bereich
Enumerable.Range(1,100)
Enumerable.Range("A","Z");
Was ist der Weg Range "A" ... "Z" wieC# Enumerable Bereich
Enumerable.Range(1,100)
Enumerable.Range("A","Z");
Enumerable.Range('A', 26).Select(x => ((char)x).ToString())
Warum ist der Aufruf von 'ToString' nicht von Interesse? Ich würde nicht erwarten, dass etwas Nützliches zu tun ... –
Weil sonst, wenn Sie mit dem Aufzählen beginnen erhalten Sie Ganzzahlen/Zeichen (65, 66, ...) statt Strings ("A", "B", ...)) was praktischer wäre. –
Eine andere Möglichkeit ist, 'ToString()' während der Enumeration aufzurufen, aber ich dachte, die Rückkehr 'IEnumerable
EDIT zu erhalten: aktualisiert, um Darins Korrektur ...
In .NET 3.5 SP1, dies würde gearbeitet haben:
Enumerable.Range('A', 26).Cast<char>()
jedoch das Verhalten von Cast
changed for .NET 3.5 SP1, so dass es jetzt führt nur Referenz Conversions auf Unboxing Konvertierungen. Also für .NET 3.5SP1 und darüber, was Sie brauchen:
Enumerable.Range('A', 26).Select(x => (char) x);
Es ist nicht sehr schön, zugegebenermaßen.
Mit MiscUtil Sie
'A'.To('Z').StepChar(1)
Ob Sie so verwenden könnte oder nicht, ist eine Frage des persönlichen Geschmacks :)
@Jon, 'Enumerable.Range ('A', 26) .Cast
Danke Jon.Just Ich studiere Kapitel 11 (Query Expression und Linq to Objects) Ihres Buches. – user196546
Ich habe noch einen Zweifel, was ist der Unterschied zwischen OfType <> und Cast <>? – user196546
Warum es einfach nicht halten einfach ...
public static IEnumerable<char> GetAlphabet()
{
return "ABCDEFGHIJKLMNOPQRSTUVWXYZ".AsEnumerable();
}
Danke James, scheint sehr nett. – user196546
Gibt kleineren Code als die anderen Beispiele. KUSS :) – Carra
Eine andere Methode, wenn Sie von einem Element des Alphabets in ein anderes schneiden möchten ...
Enumerable.Range(0,26).Select(x => (char)((char)x + 'A'))
Ich denke, Sie sollten 'A', 'Z' verwenden. Zeichen anstelle von Zeichenfolgen – RvdK