从字符串数组的列表转换为对象列表

如果我有一个看起来像这样的简单类:

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

从另一个类返回的字符串数组列表:

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

有没有更有效的方法使用C#最终得到List而不执行以下操作:

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

你可以使用Linq:

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

正如@rualmar所说,你可以使用linq。 但是你也可以重载隐式运算符。 例如

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

然后你可以写这个

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