Проблема в этой строке:
mergedX = x.Concat(y.nestedArray).ToList();
Вы всегда принимаете значение x
, но никогда не меняете его.Таким образом, mergedX
будет содержать только конечные элементы массива.
Возможно, полный LINQ будет лучше:
return ys
.Where(y => y.nestedArray != null) // only take items from ys if nestedArray != null
.SelectMany(y => y.nestedArray) // flatten the many arrays into one (in order)
.ToList(); // materialise the result into a list
В качестве альтернативы, вы можете использовать List<T>
s AddRange
метод:
foreach (var y in ys)
{
if (y.nestedArray != null)
{
mergedX.AddRange(y.nestedArray);
}
}