将字符串转换为可为空的整数列表
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)
而不是首先省略空字符串。
我想在 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)
而不是首先省略空字符串。