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

时间:2016-02-12 18:32:10

标签: c# string linq csv concatenation

考虑以下csv

string data = "Hey, Bob, How are you";

我可以将它压平为:

"Hey; Bob; How are you"

使用以下内容:

var s = String.Join("; ",data.Split(',').Select(d => d.Trim()).ToArray());

有什么方法可以获取连接中当前项的索引并将其附加到结果字符串中?按照以下方式产生一些东西:

"Hey=0; Bob=1; How are you=2"

linq是否方便这样的事情?也许结合String.Format()类型方法?

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:7)

当然 - 只需稍微更改Select

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

请注意,string.Join可以IEnumerable<T>,因此无需拨打ToArray