【问题标题】:How to print arraylist data into separate lines in C#?如何在 C# 中将 arraylist 数据打印到单独的行中?
【发布时间】:2020-08-14 15:55:44
【问题描述】:

为什么控制台窗口不垂直而不是水平打印数组内容? 有办法改变吗? 如何使用 Console.WriteLine() 水平而不是垂直显示数组的内容?

C#

        ArrayList tryArray = new ArrayList();
            for (int i = 1; i <= 2; i++)
            {
              // ASKING FOR THE USER TO ENTER DETAILS
              Console.WriteLine("Please enter information for customer: " + i);
              Console.WriteLine("Please enter your customer name");
              cusName = Console.ReadLine();
              tryArray.Add(cusName); 

              Console.WriteLine("Please enter your customer id");
              cusID = Console.ReadLine();
              tryArray.Add(cusID);

              Console.WriteLine("No of months for membership ? (Range 1-120)");
              memMonths = Convert.ToInt32(Console.ReadLine());
              tryArray.Add(memMonths.ToString());
            }

            Console.WriteLine("{0,-20} {1,10} {2,10}}", "Customer Name","Customer ID", "Months");

            for (int j = 0; j < tryArray.Count; j++)
            {
              Console.WriteLine("{0,-10} {1,5} {2,5}", tryArray[j], tryArray[j], tryArray[j]);
            }


    **//code print like this right now
    Customer Name Customer ID Months
    a1            a1          a1
    a1234567      a1234567    a1234567
    12            12          12
    a2            a2          a2
    a2234567      a2234567    a2234567
    15            15          15

    //Result I want
    Customer Name Customer ID Months
    a1            a1234567    12 
    a2            a2234567    15** 

【问题讨论】:

  • 您对一行中的所有值使用相同的索引“tryArray[j]”。因此,如果该值是“a1”,则它会显示 3 次。你能展示一下数据的结构吗?
  • for (int j = 0; j &lt; tryArray.Count - 2; j++) { Console.WriteLine("{0,-10} {1,5} {2,5}", tryArray[j], tryArray[j + 1], tryArray[j + 2]); }
  • 可以改进数据的组织。你现在有一个像{ name1, cusid1, memMonths1, name2, cusid2, memMonths2, . . . } 这样的数组。例如,有一个包含 Name、CusID 和 MemMonths 的结构或类来结构化存储。

标签: c# .net arraylist console-application


【解决方案1】:

我认为你应该使用这样的列表和类:

static void Main(string[] args)
        {

            List<Customer> customers = new List<Customer>();

            customers.Add(new Customer("a1", "a1234567", 12));
            customers.Add(new Customer("a2", "a2234567", 15));

            foreach (Customer c in customers)
            {
                Console.WriteLine(c.Name +" "+ c.Id+" "+ c.Months);
            }

            Console.ReadKey();
        }

        class Customer
        {
            public string Name { get; set; }
            public string Id { get; set; }
            public int Months { get; set; }

            public Customer(string name, string id, int months)
            {
                Name = name;
                Id = id;
                Months = months;
            }
        }

输出:

a1 a1234567 12
a2 a2234567 15

【讨论】:

    猜你喜欢
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    相关资源
    最近更新 更多