将字符串转换为可为空的整数列表

Convert String To Nullable Integer List

我想在 C# 中将字符串解析为可为 null 的 int 列表

我可以将它转换为 int 列表位而不是可为 null 的位

string data = "1,2";
List<int> TagIds = data.Split(',').Select(int.Parse).ToList();

说什么时候数据为空我想处理那部分!

谢谢

您可以使用以下扩展方法:

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 举了一个例子,遵循 link)。

除此之外,最好使用 data.Split(new[]{','}, StringSplitOptions.RemoveEmptyEntries) 而不是首先省略空字符串。