Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Appending characters to a List string

Tags:

c#

list

append

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?

like image 808
Jeagr Avatar asked Dec 18 '12 11:12

Jeagr


2 Answers

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.

like image 149
Jon Skeet Avatar answered Oct 28 '22 20:10

Jon Skeet


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.

like image 28
Liam Avatar answered Oct 28 '22 20:10

Liam