我有一个包含96个元素的字符串数组。我想将数组格式化为一个字符串,如下所示:
str str
str str
str str
str str
而不是像这样:
str
str
str
str
str
str
str
str
但每列中有32个而不是4个。
我该怎么做?
感谢。
答案 0 :(得分:1)
int index = 0;
var result = String.Join(Environment.NewLine,
array.GroupBy(s => index++ / 3)
.Select(g => String.Join("\t", g)));
如果您希望字符串在列中对齐,那么请使用:{/ p>而不是String.Join("\t", g)
String.Join("", g.Select(s => String.Format("{0,-20}",s)))
这将为每列提供20个字符的宽度,并为列提供左对齐字符串。
答案 1 :(得分:1)
如果你想要32"行"和3"列"您可以使用此LINQ查询:
string[] strings = Enumerable.Repeat("str", 96).ToArray();
IEnumerable<string[]> arrays = strings
.Select((str, index) => new { str, index })
.GroupBy(x => x.index / 3)
.Select(g => g.Select(x => x.str).ToArray());
因此每个string[]
包含三个字符串,序列包含32个string[]
s。
答案 2 :(得分:0)
这可能是解决方案:
int[,] MyArray = new int[32,2];
现在,如果你想放置值,那么:
MyArray[0,0] = your first value
//// until
MyArray[32,2] = your last value
当然,您可以使用所需的类型而不是int
类型。