2009-01-27 53 views
26

好吧,这是一个愚蠢的事情,我敢肯定,我已经做了几十次,但由于某种原因,我无法找到它。Array.Join in .Net?

我有一个数组...并希望得到与该阵列由分隔分开的内容的字符串...

在哪里,我找不到。加入()方法?

(这是NET 2.0,我没有任何东西LINQ)

谢谢!

回答

36

如果您使用的是字符串,那么String.Join可能就是您要查找的内容。

26

它是String类

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

编辑为整数串

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

如果你有strings数组可以调用String.join(String, String[])。您可以使用它,即使你没有的strings一个数组,你只需要能够转换您的objectsstrings

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

你可以找到在String class的方法。

使用分割和结合​​实例:

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

你可以使用LINQ到对象,并保存自己的几行

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

哎呀,刚才看到你没有LINQ,抱歉。

1

您不需要将数组转换为.NET Framework 4中的字符串数组。我不知道以前的框架。所以前面的代码花了几行将你的int数组转换成一个字符串数组。只是跳过这一步(如果它也适用于你的框架)。

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)