gpt4 book ai didi

c# - 将字符串解析为具有范围的整数列表

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:51 25 4
gpt4 key购买 nike

我有一堆字符串我想解析它们看起来像这样:

"1001, 1003, 1005-1010"
"1015"
"900-903"
"200, 202-209, 211-220"

有时这些字符串只是一个整数,有时是多个用逗号分隔,有时是一个范围,后两者可以以任何顺序同时出现在一个字符串中。

我想做的是创建一个函数,它接受字符串并通过解析字符串返回整数集合。因此,例如第一个字符串应该返回:

[1001, 1003, 1005, 1006, 1007, 1008, 1009, 1010]

在 .NET 4.0 中有哪些聪明的方法可以做到这一点?

最佳答案

.NET 4.0 意味着您可以使用 LINQ,因此您应该使用它:

var input = "1001, 1003, 1005-1010";

var results = (from x in input.Split(',')
let y = x.Split('-')
select y.Length == 1
? new[] { int.Parse(y[0]) }
: Enumerable.Range(int.Parse(y[0]), int.Parse(y[1]) - int.Parse(y[0]) + 1)
).SelectMany(x => x).ToList();

关于c# - 将字符串解析为具有范围的整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21916422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com