我搜索了谷歌和所有其他链接,但无法确定这是否可行。
string.Join
方法链接http://msdn.microsoft.com/en-us/library/system.string.join.aspx
Join(String, String[])
,我知道第一个参数(String
)是分隔符,第二个参数(String[]
)是我们想要加入的数组。是否可以使用2个不同的字符串/分隔符加入它?
例如我的数组>
array[0] = A;
array[1] = Alpha;
array[2] = B;
array[3] = Bravo;
最终产品比如:
A = Alpha, B= Bravo,
所以它将是2个字符串,“=”和“,”。有什么建议吗?
答案 0 :(得分:3)
您需要成对地对值进行分组,在每对上使用string.Join
(或只使用key + " = " + value
),然后在结果上使用string.Join
。
String.Join
不支持此功能。
或者,您可以编写自己的循环来执行此操作。
答案 1 :(得分:3)
UPADTED:两个代码,如果你不希望,
结束。
您可以这样做,但建议配对key
和value
或使用二维数组。
代码:
int i=0;
string str = "";
var arr = new string[] { "A", "Alpha", "B", "Bravo" };
foreach (var item in arr)
{
str += item;
if (i < arr.Length-1)
{
if (i % 2 == 0)
str += " = ";
else
str += ", ";
}
i++;
}
//output: A = Alpha, B = Bravo
<小时/>
通过这种方式,您还可以使用多个分隔符。
示例:强>
int i=0;
string str = "";
var arr = new string[] { "A", "Alpha", "1", "B", "Bravo", "2" };
var delimiters = new string[] { " = ", ", ", ":" };
foreach (var item in arr)
{
str += item;
if (i < arr.Length-1)
{
if (i % 3 == 0)
str += delimiters[0];
else if (i % 3 == 1)
str += delimiters[1];
else
str += delimiters[2];
}
i++;
}
//output: A = Alpha:1, B = Bravo:2
答案 2 :(得分:1)
我认为这不可行。您可以在Join
上,
然后循环,并用,
替换所有其他=
。
答案 3 :(得分:1)
这种扩展方法可以解决这个问题:
public static class Extensions
{
public static string Join(this object[] array, string[] delimiters)
{
var returnString = "";
var s = new Queue<string>(delimiters);
for (var i = 0; i < array.Count(); i++)
{
var delim = s.Dequeue();
returnString += array[i] + delim;
s.Enqueue(delim);
}
while (s.Count > 0) returnString = returnString.TrimEnd(s.Dequeue().ToCharArray());
return returnString;
}
}
然后您可以使用array.Join(new string[] {"=", ","})
extension-method在分隔符之间交替。
希望有所帮助!
答案 4 :(得分:0)
StringBuilder output = new StringBuilder();
for(int i = 0; i <= array.length; i++)
{
output.Append(array[i] + "=" + array[i+1]);
if(i != array.length) output.Append(",");
}
Response.Write(output.ToString());
答案 5 :(得分:0)
希望这是你正在寻找的东西;)
string[] str = { "A", "Alpha", "B", "Beta" };
string[] dl = { " = ", ", " };
string result = "";
for (int i = 0; i < str.Length; i++)
{
result += str[i] + dl[0] + str[i + 1];
if(i != str.Length - 2){
result += dl[1];
}
i++;
}
return result;
^^
答案 6 :(得分:0)
@javed with 代码更简单一些
for (int i = 0; i < query.Length; i++)
{
endpoint += query[i];
if (i < query.Length - 1)
{
if (i % 2 == 0)
endpoint += "=";
else
endpoint += "&";
}
}