Pure.Krome
Pure.Krome

Reputation: 86937

How to convert a list of ints to a string array in Linq?

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

Answers (3)

sushil pandey
sushil pandey

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

wekempf
wekempf

Reputation: 2788

values.Select(v => v.ToString()).ToArray();

or the one liner

string blah = string.Join(",", values.Select(v => v.ToString()).ToArray());

Upvotes: 13

Neil Barnwell
Neil Barnwell

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

Related Questions