我想在C#中将字符串解析为可以为空的int列表
我能够将它转换为int list bit而不是可以为空的
string data = "1,2";
List<int> TagIds = data.Split(',').Select(int.Parse).ToList();
当数据为空时我想处理那个部分!
由于
答案 0 :(得分:3)
您可以使用以下扩展方法:
public static int? TryGetInt32(this string item)
{
int i;
bool success = int.TryParse(item, out i);
return success ? (int?)i : (int?)null;
}
然后很简单:
List<int?> TagIds = data.Split(',')
.Select(s => s.TryGetInt32())
.ToList();
如果格式可能无效,我总是在LINQ查询中使用该扩展方法,它是better than using a local variable and int.TryParse
(E。Lippert举了一个例子,请点击链接)。
除此之外,最好使用data.Split(new[]{','}, StringSplitOptions.RemoveEmptyEntries)
而不是首先省略空字符串。