当前位置:  开发笔记 > 编程语言 > 正文

从字符串中分割出整数

如何解决《从字符串中分割出整数》经验,为你挑选了2个好方法。

假设我有一个网页,目前通过url参数接受单个ID值:http://example.com/mypage.aspx? ID =
1234

我想将其更改为接受ID 列表,如下所示:http:
//example.com/mypage.aspx?IDs = 1234,4321,6789

所以我的代码可以通过context.Request.QueryString ["IDs"]作为字符串使用. 将该字符串值转换为List 的最佳方法是什么?

编辑:我知道如何在逗号上执行.split()来获取字符串列表,但我问,因为我不知道如何轻松地将该字符串列表转换为int列表.这仍然是.Net 2.0,所以没有lambdas.



1> Ovid..:

那些提供明确答案的人没有冒犯,但很多人似乎在回答你的问题,而不是解决你的问题.你想要多个ID,所以你认为你可以这样:

http://example.com/mypage.aspx?IDs=1234,4321,6789

问题是这是一个不可靠的解决方案.在将来,如果您想要多个值,如果他们有逗号,您会怎么做?更好的解决方案(这在查询字符串中完全有效)是使用具有相同名称的多个参数:

http://example.com/mypage.aspx?ID=1234;ID=4321;ID=6789

然后,您使用的任何查询字符串解析器都应该能够返回ID列表.如果它无法处理(并且还处理分号而不是&符号),那么它就会被破坏.



2> Compile This..:

像这样的东西可能会起作用:

public static IList GetIdListFromString(string idList)
{
    string[] values = idList.Split(',');

    List ids = new List(values.Length);

    foreach (string s in values)
    {
        int i;

        if (int.TryParse(s, out i))
        {
            ids.Add(i);
        }
    }

    return ids;
}

然后将使用哪个:

string intString = "1234,4321,6789";

IList list = GetIdListFromString(intString);

foreach (int i in list)
{
    Console.WriteLine(i);
}

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有