我试图编写一个简单的代码,该代码采用字符串数组并将其与 2 个交替的不同分隔符连接起来。我正在寻找的是如果我有和数组:
string[] myArray = new string[] {"apples","five","bananas","six","cherries","seven"};
我想得到一个字符串,例如:
苹果=5,香蕉=6,樱桃=7
它不必只使用一种方法,但数组长度可能会有所不同。谢谢。
int i = 0;
var result = String.Join(",",myArray.GroupBy(x=>i++/2).Select(g=>String.Join("=",g)));
编写自己的版本:
string Merge(string sep1, string sep2, params string[] items)
{
string result = "";
for(int i = 0; i < items.Length - 1; i++)
{
result += items[i] + (i % 2 == 0 ? sep1 : sep2);
}
//add the last item
result += items[items.Length - 1];
return result;
}
你可以像这样使用:
string result = Merge("=", ",", myArray);
您可以使用此函数:
string GetJoinString(string[] data) {
var ret = new StringBuilder();
for (var i = 0; i < data.Count; i++) {
var separator = i % 2 == 0 ? '=' : ',';
ret.Append(data[i] + separator);
}
return ret.ToString();
}
var myArray = new string[] { "apples", "five", "bananas", "six", "cherries", "seven" };
var result = "";
for (var index = 0; index < myArray.Length; index = index + 2)
{
result += string.Format("{0}={1}{2}", myArray[index], myArray[index + 1],
index < myArray.Length - 2 ? "," : "");
}
return result;
您可以尝试使用
例如var res = myArray.Aggregate((current, next) => current + (Array.IndexOf(myArray, next) % 2 == 0 ? ",": "=") + next);
或者没有在数组中搜索,它可以是
int index = 0;
var res = myArray.Aggregate((current, next) => current + (index++ % 2 == 0 ? "=": ",") + next);