【发布时间】:2010-10-03 19:46:14
【问题描述】:
好的,这是一件愚蠢的事情,我确信我已经做了几十次了,但由于某种原因我找不到它。
我有一个数组...并且想要获取一个字符串,该字符串的内容由分隔符分隔...
我找不到的 .Join() 方法在哪里?
(这是 .Net 2.0,我没有任何 LINQ 的东西)
谢谢!
【问题讨论】:
好的,这是一件愚蠢的事情,我确信我已经做了几十次了,但由于某种原因我找不到它。
我有一个数组...并且想要获取一个字符串,该字符串的内容由分隔符分隔...
我找不到的 .Join() 方法在哪里?
(这是 .Net 2.0,我没有任何 LINQ 的东西)
谢谢!
【问题讨论】:
如果您使用的是字符串,那么 String.Join 可能就是您要查找的内容。
【讨论】:
在字符串类上
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));
【讨论】:
如果您有一个strings 数组,您可以调用String.join(String, String[])。即使您没有strings 的数组,您也可以使用它,您只需能够将您的objects 转换为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);
【讨论】:
Dim arrStrIds() As String = Array.ConvertAll(arrIntIds, New Converter(Of Integer, String)(
Function(id As Integer) id.ToString()) )
String.Join(",", arrStrIds)
【讨论】:
您可以使用 LINQ to Objects 并节省几行代码
int [] ints = { 0, 1, 2 };
string[] intStrings = (from i in ints select i.ToString()).ToArray<string>();
string joinedStrings = string.Join(",", intStrings);
糟糕,刚刚看到您没有 LINQ,抱歉。
【讨论】:
你可以在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);
}
【讨论】:
您不需要在 .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
*/
【讨论】:
如果您真的喜欢 Array.Join 的人体工程学设计,您可以像这样添加Extension Method:
public static class MyExtensions {
public static string Join(this IEnumerable<string> arr, string seperator) =>
string.Join(seperator, arr);
}
然后像这样使用:
var list = new string[] {"A", "B", "C"};
var output = list.Join(",");
// "A,B,C"
【讨论】: