Reputation: 86937
i have the an IList and i wish to turn it into a ToArray() string result. Currently i have to do the following :(
List<string> values = new List<string>();
foreach(var value in numberList)
{
values.Add(value.ToString());
}
...
string blah = string.Join(",", values.ToArray());
i was hoping to remove the foreach and replace it with some FunkyColdMedina linq code.
Cheers!
Upvotes: 3
Views: 3696
Reputation: 762
List<Int32> source= new List<Int32>()
{
1,2,3
} // Above is List of Integer
//I am Using ConvertAll Method of List
//This function is use to convert from one type to another
//Below i am converting List of integer to list of string
List<String> result = source.ConverTAll(p=>p.toString());
string[] array = result.ToArray()
Upvotes: 4
Reputation: 2788
values.Select(v => v.ToString()).ToArray();
or the one liner
string blah = string.Join(",", values.Select(v => v.ToString()).ToArray());
Upvotes: 13
Reputation: 42095
For those reading this question that aren't using LINQ (i.e. if you're not on .NET 3.x) there's a slightly more complicated method. They key being that if you create a List you have access to List.ToArray():
IList<int> numberList = new List<int> {1, 2, 3, 4, 5};
int[] intArray = new List<int>(numberList).ToArray();
string blah = string.Join(",", Array.ConvertAll(intArray, input => input.ToString()));
Not very efficient because you're then creating the input data, a List, an int array, and a string array, just to get the joined string. Without .NET 3.x your iterator method is probably best.
Upvotes: 0