sqldoug
sqldoug

Reputation: 419

How to construct an array of strings by passing in a list?

I tried searching by "C# new string array pass dynamic" but could not find anything relevant.

int[] IDs = someMethodCall();
List<string> values = new List<string>();
foreach (int i in IDs)
{
   values.Add(i.ToString());
}
someClass sc = new someClass();
sc.Value = new string[] {  "values.string1", "values.string2", ... };

What I'm trying to do is to pass the strings from values to sc.Value, so I don't have to write them out (since I don't what they'll be beforehand).

sc.Value is a string[] as defined by the class I'm using from an API (not written by me).

What is the best way to do this dynamically? In other words, how to pass in dynamic values to a string[] construction?

Upvotes: 2

Views: 393

Answers (3)

BradleyDotNET
BradleyDotNET

Reputation: 61379

How about just using the built-in method ToArray:

sc.Value = values.ToArray();

Comes with List, and is an extension method for IEnumerable if you can use LINQ.

Upvotes: 0

Matthew Frontino
Matthew Frontino

Reputation: 496

I'm a little confused by the way you word your questioning, but I think you are trying to send your list to an array, which is easily done using the code below:

        List<string> values = new List<string>();
        sc.Value = values.ToArray();

Upvotes: 0

Selman Gen&#231;
Selman Gen&#231;

Reputation: 101731

If I'm not missing something,you can just use ToArray method

sc.Value =  values.ToArray();

BTW, you don't even need to create a list in the first place:

sc.Value = someMethodCall().Select(x => x.ToString()).ToArray();

Upvotes: 2

Related Questions