2009-07-19 12 views
2

Wie kann ich eine Liste von Zeichenfolgen von "A:" bis "Z:" in C# bekommen? Etwas wie dieses:C# -Codes, um eine Liste von Strings wie A bis Z zu erhalten?

List<string> list = new List<string>(); 
for (int i = 0; i < 26; i++) 
{ 
    list.Add(string.Format("{0}:", Convert.ToChar('A' + i)); 
} 

Tut mir leid, ich habe VS zur Verifizierung nicht zur Verifizierung verfügbar. Übrigens, gibt es eine Webseite, die interaktiv Code-Schnipsel auslesen kann?

+0

Vielen Dank für die netten Antworten. Ich mag VS 2008-Codes, aber ich muss einen für VS 2005 verwenden. –

Antwort

3

Na ja, nicht am Ende der list.Ad .... Linie fehlt ')' zu zählen, alles ist in Ordnung, altough Sie es mit etwas kürzer Notation list.Add((char)('A' + i) + ":");

+0

Ich mag das. Es sollte sowohl in VS 2005 als auch in 2008 funktionieren. –

+0

Das ist viel unnötiges Casting usw. - siehe meine überarbeitete Lösung, wenn Sie LINQ nicht mögen. –

10

LINQ verwenden:

List<string> aToZ = Enumerable.Range('A', 26) 
           .Select(x => (char) x + ":") 
           .ToList(); 

Nicht LINQ - eine einfachere Alternative (IMO) zum Original-for-Schleife:

List<string> list = new List<string>(); 
for (char c = 'A'; c <= 'Z'; c++) 
{ 
    list.Add(c + ":"); 
} 
+2

Heh, Sie verwendeten Kleinbuchstaben obwohl! (nur ein Scherz, wir haben fast identische Antworten) –

+0

Hoppla, danke, behoben :) –

+7

Sie Engländer haben Glück, ein Alphabet, das in der Reihenfolge kommt; o) –

2

Edit: Y'all mich für die Antwort markiert nach unten sollte ohne lesen. In VS2005 funktioniert das nicht, und darum hat das OP gebeten.

List<string> list = new List<string>(Enumerable.Range((int)'A', 26).Select(value => ((char)value).ToString() + ':')); 
+0

Keine Notwendigkeit, ToString explizit Sie verwenden ein String-Literal auf der RHS von dem +. Oder da ist String.Format natürlich. –

+0

Da es nicht mehr gilt, können Sie es löschen. –

+0

Es gilt nicht für das OP, aber es gilt für den Titel des Threads und vielleicht andere Leute Dinge zu lesen. :) –

1

Wie wäre:

var list = Enumerable.Range('a', 'z' - 'a' + 1).Select(charCode => (char)charCode)).ToList(); 
0

Yours funktioniert gut, mit Ausnahme von ein fehlt). Ich teste alle meine Snipits mit LinqPad. (Ich weiß nicht, wie ich jemals ohne es gelebt habe).

12
from ch in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" select ch + ":"; 
+0

Ich mag das Aussehen dieses hier. –

+0

Yup, das ist süß. –

+3

Alternativ: "ABCDEFGHIJKLMNOPQRSTUVWXYZ" .Wählen Sie (ch => ch + ":") - dasselbe, keine Notwendigkeit für "von" oder "in". –

0

Andere
schreiben konnte beantworten ;-)

List<string> list = new List<string>(); 
for (int i = 'A'; i <= 'Z'; i++) 
{ 
    list.Add(string.Format("{0}:", Convert.ToChar(i))); 
} 
0

Für Schnipsel Test Code verwende ich LinqPad oder Snippet Compiler. Ich bevorzuge LinqPad, aber beide sind sehr nett.

Verwandte Themen