从数组连接字符串并包含它的索引C#

Bil*_*nor 0 c# linq csv string concatenation

考虑以下csv

string data = "Hey, Bob, How are you";
Run Code Online (Sandbox Code Playgroud)

我可以把它弄平:

"Hey; Bob; How are you"
Run Code Online (Sandbox Code Playgroud)

使用以下内容:

var s = String.Join("; ",data.Split(',').Select(d => d.Trim()).ToArray());
Run Code Online (Sandbox Code Playgroud)

有什么办法可以在连接中获取当前项的索引并将其附加到结果字符串中吗?要产生以下方面的东西:

"Hey=0; Bob=1; How are you=2"
Run Code Online (Sandbox Code Playgroud)

linq有什么方便吗?也许结合String.Format()类型方法?

joh*_*y 5 8

在这里尝试这个选项中有一个索引选择器,你可以使用它来与每个数据块连接

var s = String.Join("; ",data.Split(',')
                  .Select((d, i) => d.Trim() + "= " + i.ToString()).ToArray());
Run Code Online (Sandbox Code Playgroud)


D S*_*ley 7

当然 - 只需Select稍微改变一下:

var s = String.Join("; ",data.Split(',')
                             .Select((d, i) => String.Format("{0}={1}",d.Trim(),i)));
Run Code Online (Sandbox Code Playgroud)

请注意,string.Join可以这样做,IEnumerable<T>所以不需要打电话ToArray.

  • 您的字符串格式缺少引号 (2认同)
  • @ johnny5谢谢,修复. (2认同)