如何在asp.net中分离字符串并保存在数组中

时间:2011-08-04 12:37:29

标签: c# regex

我在db中有一个列,它将字符串保存为1,2,3,4,5 我想将字符串分隔为1 2 3 4 5并保存数组中的每个数字,例如数组应该像int [] numbers,int [0] = 1,int [1] = 2 .....

3 个答案:

答案 0 :(得分:3)

看起来你想要:

int[] array = text.Split(',')
                  .Select(x => int.Parse(x, CultureInfo.InvariantCulture))
                  .ToArray();

如果任何拆分结果不是可解析的整数,显然会发生这种情况。

(您可能还想使用List<int>而不是数组,作为通常更灵活的集合类型。)

编辑:简短但完整的演示程序:

using System;
using System.Globalization;
using System.Linq;

public class Test
{
    static void Main()
    {
        string eventIds = "1,2,3";
        int[] array =
            eventIds.Split(',')
                    .Select(x => int.Parse(x, CultureInfo.InvariantCulture))
                    .ToArray();
        foreach (int id in array)
        {
            Console.WriteLine(id);
        }
    }
}

答案 1 :(得分:1)

这是代码

Dim str as String = "1,2,3,4,5"

dim objstr() as String = str.split(",")

这里拆分返回数组。

答案 2 :(得分:1)

这是John的优秀代码段的“更安全”版本,它将通过将int添加为0来处理无法解析为int temp; int[] array = text.Split(',') .Select(x => int.TryParse(x, out temp) ? temp : 0) .ToArray(); 的值:

private static int[] ConvertTextToIntArray(string text)
{
    var integerList = new List<int>();
    var values = text.Split(',');
    int temp;

    foreach (var value in values)
    {
        if (int.TryParse(value, out temp))
        {
            integerList.Add(temp);
        }
    }

    return integerList.ToArray();
}

如果你想完全安全并丢弃任何无法转换为整数的值,那么你可以使用这样的函数:

{{1}}