我怎样才能将以下不同大小的四个列表加入到一个新列表中。我真的不知道如何解决这个问题。如果我这样做,我会尝试发布一些尝试。
编辑:我应该指出我想要创建的列表不是列表本身,而是所有组合列表字符串的列表。
List<string[5]> coords_list
List<string[8]> outer_plf_list
List<string[8]> planet_start_plf_list
List<string[5]> planet_plf_list
答案 0 :(得分:3)
对于您的情况,请尝试使用LINQ Concat
:
这导致List<string[]>
var newlist = coords_list
.Concat(outer_plf_list)
.Concat(planet_start_plf_list)
.Concat(planet_plf_list)
或者,如果您需要List<string>
,请执行以下操作:
var newlist = coords_list
.Concat(outer_plf_list)
.Concat(planet_start_plf_list)
.Concat(planet_plf_list)
.SelectMany(x => x)
.ToList();
您也可以使用AddRange
替代:
var newlist = new List<string[]>();
newlist.AddRange(coords_list);
newlist.AddRange(outer_plf_list);
newlist.AddRange(planet_start_plf_list);
newlist.AddRange(planet_plf_list);
如果您的List<List<List<string>>>
代替List<string[]>
且string[]
尺寸不同,则可以使用SelectMany
将List<List<List<string>>>
展平为List<List<string>>
< / p>
答案 1 :(得分:3)
您想要一个字符串数组列表,还是只需一个大字符串列表?
对于第一种情况,lan的解决方案有效。
对于后者,请使用SelectMany;
List<string[]> p1 = new List<string[]>();
p1.Add(new String[] { "a", "b" });
List<string[]> p2 = new List<string[]>();
p2.Add(new String[] { "c", "d" });
p2.Add(new String[] { "e", "f" });
// will contain 6 string items: a, b, c, d, e, f
var result = p1.Concat(p2).SelectMany(s => s).ToList();
答案 2 :(得分:1)
您可以使用列表的AddRange()
方法,如下所示:
var combinedList = new List<string>();
combinedList.AddRange(coords_list);
combinedList.AddRange(outer_plf_list);
combinedList.AddRange(planet_start_plf_list);
combinedList.AddRange(planet_plf_list);