使用Linq C#将锯齿列表 >转换为矩形列表

问题描述 投票:-3回答:1

我的问题与此处的问题非常相似:Rotate - Transposing a List<List<string>> using LINQ C#

除了我对解决方案的测试引起我的注意之外,它在偶数阵列而不是不均匀的阵列上效果最佳。出于好奇,我从上面的链接中获得了接受的解决方案以及其他一些解决方案,这些解决方案都产生了转置,而不会填补锯齿状列表上缺乏的信息。

{{"a"},
 {"b","c"}} 

将转置为

{{"a","b"},
 {"c"}} 

而不是

{{"a","b"},
 {null,"c"}}.

如果要成为列表末尾的地方有三个空白信息,我的源数据将一无所有,它将被切断而没有任何空值。我希望能够在转置时在源数据中长度不是最长的列表中插入空值或其他特定值。我知道仅使用标准的for循环来处理它的最佳方法,但是我想要一个使用Linq的解决方案,不幸的是我对此不太熟悉。

任何帮助都会感激!

c# linq jagged-arrays
1个回答
0
投票
好,如果我们想摆脱null

var source = new string[][] { new string[] {"a", "b", "c"}, new string[] {"d"}, new string[] {"e", "f"}, new string[] {"g", "h", "i", "j"}, };

我们可以计算columns的数量:我已经输入.Count(),所以List<List<string>>string[][]都可以。
© www.soinside.com 2019 - 2024. All rights reserved.