尝试模块化一些 latex 表格生成代码,大量镀金。
var MIDRULE = @"\\\midrule";
var a = new []{new []{"a", "b", "c"}, new []{"1", "2", "3"}, new []{"alpha", "beta", "gamma"}};
a.Dump();
a.Aggregate(
(x,y) => x.Aggregate((i,j) => i + "&" + j)
+ MIDRULE + Environment.NewLine
+ y.Aggregate((k,l)=>k+"&"+l)).Dump();
预期结果:
a&b&c\\\midrule
1&2&3\\\midrule
alpha&beta&gamma\\\midrule
实际结果:
Cannot implicitly convert type 'string' to 'string[]'
如果可能的话,我想用一行聚合命令来做到这一点,我已经可以在嵌套循环或其他各种方式中做到这一点,我有兴趣更好地了解聚合。
最佳答案
尝试:
string.Concat(a.Select(inner => string.Join("&", inner)
+ MIDRULE + Environment.NewLine))
.Dump();
注意不要将 Join
用于外部调用,因为您希望将 MIDRULE + Environment.NewLine
附加到每个字符串,包括最后一个字符串。
编辑:
由于您热衷于在此处使用 Aggregate
(我不推荐它,因为它的可读性较差且远效率较低),请尝试(未经测试):
a.Aggregate(string.Empty, (x, y) => x
+ y.Aggregate(string.Empty,
(k, l) => k + "&" + l)
+ MIDRULE
+ Environment.NewLine)
.Dump();
关于c# - 聚合多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12683734/