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

时间:2015-05-13 13:14:58

标签: c#-4.0

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

我能够将它转换为int list bit而不是可以为空的

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

当数据为空时我想处理那个部分!

由于

1 个答案:

答案 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)而不是首先省略空字符串。