简体   繁体   中英

Concatenate string from array and include it's index C#

Consider the following csv

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

I can flatten it to:

"Hey; Bob; How are you"

Using the following:

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

Is there any way I can get the index of the current item in the join and append it to the resulting string? To produce somthing along the lines of:

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

Does linq facilitate anything like this? Perhaps combined with a String.Format() type method?

Here try this there is an index selector in the select you can use it to concatonate with each of your data pieces

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

Sure - just change your Select slightly:

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

note that string.Join can take an IEnumerable<T> so there's no need to call ToArray .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM