2009-01-27 1 views
26

Ok, das ist eine dumme Sache, die ich sicher schon Dutzende Male gemacht habe, aber aus irgendeinem Grund kann ich sie nicht finden.Array.Join in .Net?

Ich habe ein Array ... Und wollen einen String mit dem Inhalt dieses Arrays durch eine begrenzte getrennt bekommen ...

Wo ist die .join() -Methode, die ich nicht finden kann?

(Dies ist .Net 2.0, ich habe keine LINQ Sachen)

Thank you!

Antwort

36

Wenn Sie mit Strings arbeiten, dann ist String.Join wahrscheinlich, was Sie suchen.

26

Es ist auf der String-Klasse

String.Join(",", new string[] {"a", "b", "c"}); 

Edit für ints String

int[] integers = new int[] { 1,2,3,4,5 }; 
String.Join(",", Array.ConvertAll<int, String>(integers, Convert.ToString)); 
3

Wenn Sie ein Array von strings haben Sie String.join(String, String[]) aufrufen können. Sie können es verwenden, auch wenn Sie nicht ein Array von strings haben, haben Sie nur in der Lage sein, konvertieren Sie Ihre objects zu strings

object[] objects = ... 
string[] strings = new string[objects.Length]; 
for (int i = 0; i < objects.Length; i++) 
    strings[i] = objects[i].ToString(); 
string value = String.Join(", ", strings); 
1

Sie können die Methode in der String class finden.

Beispiel mit Split und Join:

public static void Main() { 

    string str = "on two three, four five six."; 
    char[] separators = {' ', '.', ',' }; 

    // Split the string: 
    string[] parts = str.Split(separators); 

    string allTogether = String.Join(" | ", parts); 

    Console.WriteLine("Joined: "); 
    Console.WriteLine(allTogether); 


    } 
2

Sie LINQ to Objects verwenden könnte und sparen Sie sich ein paar Zeilen

int [] ints = { 0, 1, 2 }; 
string[] intStrings = (from i in ints select i.ToString()).ToArray<string>(); 
string joinedStrings = string.Join(",", intStrings); 

Hoppla, sah nur, dass Sie LINQ nicht haben, Es tut uns leid.

1

Sie müssen das Array nicht in ein Zeichenfolgenarray in .NET Framework 4 konvertieren. Ich weiß nicht über vorherige Frameworks. Der vorherige Code verwendet also mehrere Zeilen, um Ihr int-Array in ein string-Array umzuwandeln. überspringe diesen Schritt (wenn es auch in deinem Framework funktioniert).

string[] sA = "11,12,13".Split(','); 
int[] iA = { 21, 22, 23}; 
Console.WriteLine(string.Join("+", iA) + " -- " + string.Join("+", sA)); 

/* displays: 
21+22+23 -- 11+12+13 
*/ 
2
Dim arrStrIds() As String = Array.ConvertAll(arrIntIds, New Converter(Of Integer, String)(
Function(id As Integer) id.ToString())) 

String.Join(",", arrStrIds)