Appending characters to a List string

2020-07-08 08:12发布

问题:

I have an optional custom prefix and suffix in my application, that I want to add to each of the items in my string List. I have tried all of the following and none are working. Can someone point me in the right direction please?

List<string> myList = new List<string>{ "dog", "cat", "pig", "bird" };

string prefix = "my ";
string suffix = " sucks!";

StringBuilder sb = new StringBuilder();
sb.Append(suffix);
sb.Insert(0, prefix);
MyList = sb.ToString();  //This gives me red squigglies under sb.ToString();

I also tried:

myList = myList.Join(x => prefix + x + suffix).ToList();  //Red squigglies

and:

sortBox1.Join(prefix + sortBox1 + suffix).ToList();  //Red squigglies

Where am I going wrong here?

回答1:

It's not really clear why you're using a StringBuilder at all here, or why you'd be trying to do a join. It sounds like you want:

var suckingList = myList.Select(x => "my " + x + " sucks")
                        .ToList();

This is the absolutely normal way of performing a projection to each item in a list using LINQ.



回答2:

List<string> myList = new List<string>{ "dog", "cat", "pig", "bird" };
List<string> myNewList = new List<string>();

string prefix = "my ";
string suffix = " sucks!";

foreach(string s in myList)
{
     myNewList.Add(string.Format("{0}{1}{2}", prefix, s, suffix);
}

myNewList now contains the correct data.



标签: c# list append