如何在asp.net中分离字符串和保存数组
本文关键字:字符串 保存 数组 分离 asp net | 更新日期: 2023-09-27 18:04:24
我在db中有列,它将字符串保存为1,2,3,4,5我想把字符串分成1 2 3 4 5并保存在数组中,例如数组应该是int[]数字,int[0] = 1, int[1] = 2 ......
看起来像是你想要的:
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);
}
}
}
代码
Dim str as String = "1,2,3,4,5"
dim objstr() as String = str.split(",")
这是John的优秀代码片段的一个"更安全"的版本,它将通过将它们添加为0
来处理不能解析为int
的值:
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();
}