Does C# have built-in support for parsing page-number strings?

前端 未结 11 958
隐瞒了意图╮
隐瞒了意图╮ 2020-12-14 18:09

Does C# have built-in support for parsing strings of page numbers? By page numbers, I mean the format you might enter into a print dialog that\'s a mixture of comma and das

11条回答
  •  生来不讨喜
    2020-12-14 19:08

    The answer I came up with:

    static IEnumerable ParseRange(string str)
    {
        var numbers = str.Split(',');
    
        foreach (var n in numbers)
        {
           if (!n.Contains("-")) 
               yield return n;
           else
           {
               string startStr = String.Join("", n.TakeWhile(c => c != '-'));
               int startInt = Int32.Parse(startStr);
    
               string endStr = String.Join("", n.Reverse().TakeWhile(c => c != '-').Reverse());
               int endInt = Int32.Parse(endStr);
    
               var range = Enumerable.Range(startInt, endInt - startInt + 1)
                                     .Select(num => num.ToString());
    
               foreach (var s in range)
                   yield return s;
            }
        }
    }
    

提交回复
热议问题