【问题标题】:Custom Auto Generate Sequences in C# [duplicate]在 C# 中自定义自动生成序列 [重复]
【发布时间】:2019-04-30 06:53:48
【问题描述】:

所以我有一个列表,但列表是整数。 赞1, 2, 3, 4, 5,...,10,...100,..

我想将该整数转换为格式为 00000X 的字符串。

X 代表整数。所以列表将是000001, 000002, 000010, 000100, etc

【问题讨论】:

  • 欢迎来到 Stack Overflow。目前哪个部分给您带来了问题?是一般将整个列表转换,还是将数字特定转换为特定格式?如果我是你,我会将这两个方面分开,一次只关注一个方面。
  • int[] 输入 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,13,14,15 };字符串输出 = string.Join(",", input.Select(x => "0x" + x.ToString("x5")));

标签: c#


【解决方案1】:

您可以通过使用 LINQ 来实现这一点。请检查以下答案。

        List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 10, 100, 1000,10000,99999,100000 };
        var mask = "00000";
        List<string> stringNumbers = numbers.Select(x =>
        {
            if (mask.Length > x.ToString().Length)
            {
                return mask.Substring(0, mask.Length - x.ToString().Length) + x.ToString();
            }
            else return x.ToString();
        }).ToList();

【讨论】:

  • 不适用于上面有 2 位或更多位的数字,他想要“00010”而不是“0000010”
  • 我同意你的观点,我已经更新了我的答案。
【解决方案2】:
List<string> result = new List<string>();  
foreach (int yourNumber in intList) {
    result.Add("0000000".Substring(0, 7 - yourNumber.ToString().Length);
}

应该可以。

你也可以在一行中做 intList.ForEach(...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 2021-11-28
    • 2017-03-03
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 2018-08-24
    相关资源
    最近更新 更多