【问题标题】:c# Please how to get an order liste in c# [closed]c#请问如何在c#中获取订单列表[关闭]
【发布时间】:2022-11-28 21:10:18
【问题描述】:

嗨,请问如何在 C# 中获取有序列表

string[] names = {"name1", "name2", "name3"};

我想要这样的结果:

001 name1
002 name2
003 name3
etc ...

但不是这样的

1 name1
2 name2
3 name3
etc ...

我试过了 一个 while 循环,例如:

string[] cars = {"name1", "name2", "name3"};


foreach (string i in cars) 
{
  Console.WriteLine(i);
}

但我想要一个结果

001 name1
002 name2
003 name3
etc ...

不仅是名字

【问题讨论】:

  • 你只想要输出?清单已经订好了吗?
  • 您的问题似乎不是关于获取有序列表,而是关于如何对列表输出进行编号和格式化。

标签: c# arrays loops for-loop while-loop


【解决方案1】:

使用 for 循环以获得索引

for (int i = 0; i < cars.Length; i++) {
    Console.WriteLine($"{i + 1:000} {cars[i]}");
}

请注意,汽车的 string i 非常令人困惑。通常使用名称 i 表示整数。对于通用字符串名称,请使用 s。但是在您的代码中 string car 会更具可读性。

$"{i + 1:000} {cars[i]}" 使用字符串插值来组成和格式化字符串。 $ 符号表示字符串插值。插入到字符串中的值位于花括号 { } 之间。您可以在: 之后指定格式。这里000

也可以看看:


另一种方法是像这样声明一个Car

public class Car
{
    public string Name { get; set; }
    
    public int Index { get; set; }

    public override string ToString()
    {
        return $"{Index:000} {Name}"
    }
}

然后你可以创建一个数组并像这样打印它

Car[] cars = {
    new Car { Name = "name", Index = 1 },
    new Car { Name = "other name", Index = 2 },
    new Car { Name = "yet another name", Index = 3 },
};

foreach (Car car in cars) 
{
  Console.WriteLine(car);
}

【讨论】:

  • 你能解释一下这段代码吗:$"{i + 1:000} {cars[i]}"
  • i+1 因为我从 0 开始,而你想从 1 开始。":000" 是格式。参见Custom numeric format strings。 (注意表中“0”的条目)$""learn.microsoft.com/en-us/dotnet/csharp/tutorials/…
  • 好的,我明白了,但是如果我想从 0 开始,我会把 1 改成 0:000 吗?
  • 然后就是$"{i:000} cars[i]"
  • 好的,非常感谢:)
【解决方案2】:

像这样的东西

string[] cars = new[] { "name1", "name2", "name3" };

for (int i = 0; i < cars.Length; i++)
    Console.WriteLine($"{i:D3} {cars[i]}");

【讨论】:

    【解决方案3】:

    你可以简单地使用数组排序()对数组进行排序的方法。

    string[] cars = {"name3", "name2", "name1"};
    Array.Sort(cars);
    
    for (int i = 0; i < cars.Length; i++)
    Console.WriteLine($"{i:D3} {cars[i]}");
    

    输出:

     001 name1
     002 name2
     003 name3
    

    【讨论】:

    • 那是不是该代码的输出。
    • 谢谢,但我想要这样的结果:000 name, 001 name1, 002, name2
    猜你喜欢
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    相关资源
    最近更新 更多