string tags = "9,3,12,43,2"
List<int> TagIds = tags.Split(',');
这行不通,因为split方法返回一个字符串[]
string tags = "9,3,12,43,2"
List<int> TagIds = tags.Split(',');
这行不通,因为split方法返回一个字符串[]
当前回答
如果你正在使用c# 3.5,你可以使用Linq来实现这一点
string tags = "9,3,12,43,2";
List<int> tagIds = tags.Split(',').Select(s=>int.Parse(s)).ToList();
还是短的那个
string tags = "9,3,12,43,2";
List<int> tagIds = tags.Split(',').Select(int.Parse).ToList();
其他回答
有一点LINQ可以走很长的路:
List<int> TagIds = tags.Split(',')
.Select(t => int.Parse(t))
.ToList();
string tags = "9,3,12,43,2"
List<int> TagIds = tags.Split(',').Select(x => x.Trim()).Select(x=> Int32.Parse(x)).ToList();
这里有一种方法:
List<int> TagIds = tags.Split(',').Select(int.Parse).ToList();
我偶然发现了这个,我只是想分享我自己的解决方案没有linq。这是一种原始方法。非整数值也不会被添加到列表中。
List<int> TagIds = new List<int>();
string[] split = tags.Split(',');
foreach (string item in split)
{
int val = 0;
if (int.TryParse(item, out val) == true)
{
TagIds.Add(val);
}
}
希望这能有所帮助。
如果你正在使用c# 3.5,你可以使用Linq来实现这一点
string tags = "9,3,12,43,2";
List<int> tagIds = tags.Split(',').Select(s=>int.Parse(s)).ToList();
还是短的那个
string tags = "9,3,12,43,2";
List<int> tagIds = tags.Split(',').Select(int.Parse).ToList();