hello
hello

Reputation: 1228

Convert from List of string array to List of objects

If I have a simple class that looks like this:

public string Param1 { get; set; }
public string Param2 { get; set; }
public SimpleClass (string a, string b) { Param1 = a; Param2 = b; }

List of string array returned from another class:

var list = new List<string[]> {new[] {"first", "second"}, new[] {"third", "fourth"}};

Is there a more efficient way using C# to end up with List<SimpleClass> without doing something like:

var list1 = new List<SimpleClass>();
foreach (var i in list)
{          
    var data = new SimpleClass(i[0], i[1]);
    list1.Add(data);         
}

Upvotes: 6

Views: 2597

Answers (2)

Eins
Eins

Reputation: 155

As was said by @rualmar you can use linq. But you also can overload implicit operator. For example

public static implicit operator SimpleClass(string[] arr)
{
    return new SimpleClass(arr[0], arr[1]);
}

and after that you can write this

var list = new List<SimpleClass> { new[] { "first", "second" }, new[] { "third", "fourth" } };

Upvotes: 3

rualmar
rualmar

Reputation: 239

You can use Linq:

var simpleClassList = originalList.Select(x => new SimpleClass(x[0], x[1])).ToList()

Upvotes: 10

Related Questions