我在db中有一个列,它将字符串保存为1,2,3,4,5 我想将字符串分隔为1 2 3 4 5并保存数组中的每个数字,例如数组应该像int [] numbers,int [0] = 1,int [1] = 2 .....
答案 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}}