首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将包含整数的字符串解析为List<int>

将包含整数的字符串解析为List<int>
EN

Stack Overflow用户
提问于 2011-09-22 06:05:40
回答 3查看 1.8K关注 0票数 2

我想让用户以下列方式输入整数:

用逗号分隔的

  • 数: 1,3,122,64000,27和
  • 数列: 37-2000
  • A以上的混合物:

如何解析以int列表结尾的任何形式中的字符串?

因此,例如: 1-5,6,7-8应该给出一份清单,其中应包含国家统计局1、2、3、4、5、6、6、7、8

我对C#非常陌生,所以非常希望有一些示例代码。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-22 06:18:18

这样做是可行的:

代码语言:javascript
运行
复制
var query =
    from x in text.Split(',')
    let y = x.Split('-')
    let b = int.Parse(y[0].Trim())
    let e = int.Parse(y[y.Length - 1].Trim())
    from n in Enumerable.Range(b, e - b + 1)
    select n;

var result = query.ToList();

我建议添加一些错误处理,但是如果您的输入格式是正确的,这是可行的。

编辑**:.NET 2.0版本。

代码语言:javascript
运行
复制
var result = new List<int>();
foreach (var x in text.Split(','))
{
    var y = x.Split('-');
    var b = int.Parse(y[0].Trim());
    var e = int.Parse(y[y.Length - 1].Trim());
    for (var n = b; n <= e; n++)
    {
        result.Add(n);
    }
}

完全一样..。:-)

票数 2
EN

Stack Overflow用户

发布于 2011-09-22 06:10:53

按逗号拆分的String.split将提供您所需的所有内容,如果一个组再次包含-拆分,并且您有两个范围值。

票数 2
EN

Stack Overflow用户

发布于 2011-09-22 06:12:23

根据“,”对字符串进行符号化,然后解析单个数字或范围的列表。

内存中有一个拆分(.)方法,可以使用该方法获取令牌。然后测试是否存在一个“-”(如果它是第一个字符,那么它是否定的,而不是一个明显的范围)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7510237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档