2010-12-11 13 views
0

Im eine OBJ-C-Anwendung in C# Umwandlung und Mühe habe mit diesem:C# -Äquivalent von OBJ-C

Was ist die C# Art und Weise, dies zu tun:

NSArray *charts = [xmlString componentsSeparatedByString:@"</record>"]; 
+0

Ich weiß nicht, objektive C - können Sie erklären, was diese Codezeile tut? – Oded

+0

Es dauert eine Zeichenfolge und konvertiert es in ein Array von Zeichenfolgen mit "" als Trennzeichen ... "bla bla bla bla bla bla yo yo yo" würde in ein Array mit den folgenden Objekten verwandelt: "bla bla bla" und " yo yo " – Brodie

Antwort

3
string[] charts = xmlString.Split(new string[] { "</record>" }, StringSplitOptions.None); 
+0

+1. Als kleines Detail denke ich, * ein 'NSArray' ist eher einer' Liste 'als einem' T [] '. Da könnte es falsch liegen. – Ani

+0

perfekt danke !, ich war in der Nähe – Brodie

+0

@ Brodie: Haben Sie tatsächlich gültige XML zu beginnen? Wie ich in meiner Antwort sagte, würde ich Sie dringend auffordern, die Verwendung von geraden String-Operationen zu überdenken, wenn das der Fall ist. –

1

I falsch gelesen die ursprüngliche Frage (oder vielmehr, Kommentar), aber ich würde stark empfehlen, dass, wenn Sie etwas XML haben, Sie es nicht nur durch Tag-Namen teilen - Sie analysieren es als XML und arbeiten dann mit dem geparsten Dokument. Das wird viel zuverlässiger sein als einfache String-Operationen.

Zum Beispiel, wenn Sie den Text in jedem <record> Element erhalten möchten können Sie verwenden:

XDocument doc = XDocument.Parse(text); 
List<string> records = doc.Descendants("record") 
          .Select(x => x.Value) 
          .ToList(); 

Behandlung von XML als einfacher String ist fast immer eine schlechte Idee.

+0

Ich weiß nicht, warum das abgelehnt wurde, es ist ein vernünftiger Punkt. – JeremyP

+0

@ JeremyP: Es wurde downvoted, weil die ursprüngliche Version davon die Verwendung von 'string.Join' nahelegte - weil ich den OP-Kommentar falsch gelesen hätte. –