C#中如何将单列计算结果数据按4列排列展示
C#实现列表按4列逐行输出的方案
实现思路
将一维的结果列表按每4个元素切割为一个行分组,再将每个分组内的元素按固定宽度拼接输出即可,自动适配最后一行不足4个元素的边界场景。
代码实现
方案1:LINQ简洁实现
需要引入System.Linq命名空间,适合代码简洁性要求高的场景:
using System; using System.Collections.Generic; using System.Linq; class OutputDemo { static void Main() { // 替换为你实际计算得到的结果列表 List<int> resultData = Enumerable.Range(1, 10).ToList(); // 按每4个元素为一组做拆分 var rowGroups = resultData .Select((value, index) => new { Value = value, Index = index }) .GroupBy(item => item.Index / 4) .Select(group => group.Select(item => item.Value)); // 逐行输出,每个元素固定占6个字符宽度,左对齐 foreach (var row in rowGroups) { Console.WriteLine(string.Join("", row.Select(v => $"{v,-6}"))); } } }
方案2:原生循环实现
无需引入额外命名空间,性能更好且逻辑直观:
using System; using System.Collections.Generic; class OutputDemo { static void Main() { List<int> resultData = Enumerable.Range(1, 10).ToList(); // 每次步进4个元素处理一行 for (int i = 0; i < resultData.Count; i += 4) { // 处理最后一行不足4个元素的情况 int currentRowItemCount = Math.Min(4, resultData.Count - i); for (int j = 0; j < currentRowItemCount; j++) { // 固定宽度输出,-6代表左对齐占6字符,可按需调整数值 Console.Write($"{resultData[i + j],-6}"); } Console.WriteLine(); } } }
参数调整说明
- 如果你需要调整列间距,修改格式化字符串
$"{v,-6}"中的数字6即可,数值越大列间距越宽 - 如果需要右对齐输出,去掉负号即可,例如
$"{v,6}" - 如果你的计算结果是字符串、浮点数等其他类型,直接替换
List<int>的泛型类型即可,格式化规则通用
内容的提问来源于stack exchange,提问作者JaguarV12
相关产品推荐
相关产品推荐

