You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中打印任意维度的任意类型数组

在C#中实现任意维度、任意类型数组的打印

要实现任意维度、任意类型数组的格式化打印,核心思路是递归+类型判断:通过递归处理嵌套的数组元素,同时利用数组的通用遍历特性,无需提前知晓维度信息。

实现方案

下面是一个简洁的通用实现,输出格式符合你期望的嵌套方括号风格:

using System;
using System.Text;

public static class ArrayPrinter
{
    // 将数组转换为格式化字符串
    public static string ArrayToString(object array)
    {
        if (array == null)
            return "null";
            
        // 判断输入是否为数组类型
        if (!(array is Array arr))
            return array.ToString();
            
        var sb = new StringBuilder();
        sb.Append('[');
        bool isFirstElement = true;

        // foreach自动适配多维数组的元素遍历,无需手动处理维度索引
        foreach (var element in arr)
        {
            if (!isFirstElement)
                sb.Append(", ");
                
            // 递归处理元素:如果元素仍是数组则继续解析,否则直接转字符串
            sb.Append(ArrayToString(element));
            isFirstElement = false;
        }

        sb.Append(']');
        return sb.ToString();
    }

    // 直接打印数组
    public static void PrintArray(object array)
    {
        Console.WriteLine(ArrayToString(array));
    }
}

测试示例

用不同维度、不同类型的数组验证效果:

public class Program
{
    public static void Main()
    {
        // 你的示例:二维int数组
        int[,] int2D = {{2,1}, {5,9}, {3,4}};
        ArrayPrinter.PrintArray(int2D);
        // 输出:[[2, 1], [5, 9], [3, 4]]

        // 三维string数组
        string[,,] str3D = {{{"a", "b"}, {"c", "d"}}, {{"e", "f"}, {"g", "h"}}};
        ArrayPrinter.PrintArray(str3D);
        // 输出:[[[a, b], [c, d]], [[e, f], [g, h]]]

        // 一维匿名类型数组
        var customArr = new[] 
        { 
            new { Name = "Alice", Age = 25 }, 
            new { Name = "Bob", Age = 30 } 
        };
        ArrayPrinter.PrintArray(customArr);
        // 输出:[{ Name = Alice, Age = 25 }, { Name = Bob, Age = 30 }]
    }
}

关键细节说明

  • 维度适配:所有数组都实现了IEnumerable,foreach会自动遍历多维数组的所有元素,无需手动处理每个维度的上下限。
  • 类型兼容:支持值类型、引用类型、匿名类型。如果需要自定义类型的更友好输出,只需重写该类型的ToString()方法即可。
  • 异常防护:对null输入直接返回"null",避免空引用异常。

内容的提问来源于stack exchange,提问作者AnDrEw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 21:15:15