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

如何在C#中按指定格式打印数组中的姓名、年龄与薪资?

修正C#员工数据对齐输出的方案

先明确你原代码的核心问题:

  • 完全没必要用三维数组,这里仅需「员工数 × 单员工字段数」的二维结构即可
  • 数组定义维度错误:string[2,2,3]无法容纳3个员工数据,且初始化语法不匹配三维数组规则
  • 循环索引逻辑错误:Namelist[i,i,i]每次仅取一个对角元素,而非每个员工的完整三个字段
  • 未使用格式化字符串,无法实现对齐效果

方案1:修正二维数组实现对齐输出

using System;

namespace General_Employee_Data
{
    class Program
    { 
        static void Main(string[] args)
        {
            // 二维数组:行=员工数量,列=单员工的三个字段(姓名/年龄/薪资)
            string[,] employees = new string[3, 3]
            {
                { "Graham", "47", "500" },
                { "Jess", "47", "250" },
                { "David", "23", "100" }
            };

            for (int i = 0; i < 3; i++)
            {
                // 格式化规则:姓名左对齐占8位,年龄/薪资右对齐占4位,保证每行对齐
                Console.WriteLine("{0,-8} {1,4} {2,4}", employees[i, 0], employees[i, 1], employees[i, 2]);
            }
        }
    }
}

方案2:使用元组列表(更贴合C#现代写法)

元组可以给字段命名,代码可读性更强:

using System;
using System.Collections.Generic;

namespace General_Employee_Data
{
    class Program
    { 
        static void Main(string[] args)
        {
            var employees = new List<(string Name, int Age, int Salary)>
            {
                ("Graham", 47, 500),
                ("Jess", 47, 250),
                ("David", 23, 100)
            };

            foreach (var emp in employees)
            {
                Console.WriteLine("{0,-8} {1,4} {2,4}", emp.Name, emp.Age, emp.Salary);
            }
        }
    }
}

最终输出效果

运行后会得到对齐的结果:

Graham    47   500
Jess      47   250
David     23   100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:55:30