分割字符串并转换为可为空的long

时间:2019-03-08 10:53:14

标签: c#

我有以下代码,该代码将字符串拆分,然后将值转换为long:

string.IsNullOrEmpty(baIds) ? null : baIds.Split(',').Select(e => long.Parse(e)).ToList(),

我想要的是将值转换为可为空的long值。 有帮助吗?

3 个答案:

答案 0 :(得分:1)

如果只需要将其键入为long?,则只需投射Select

Select(e => (long?)long.Parse(e))

如果您需要使用null来指示无法解析的内容,那么

Select(e => long.TryParse(e, out long r) ? r : default(long?))

答案 1 :(得分:0)

使用TryParse

List<long?> result = null;
if (!string.IsNullOrEmpty(baIds))
{
    long temp;
    result = baIds.Split(',').Select(e => long.TryParse(e, out temp) ? temp : (long?)null).ToList();
}

https://dotnetfiddle.net/uHk99J

答案 2 :(得分:0)

您可以使用此

string.IsNullOrEmpty(baIds) ? null : baIds.Split(',').Select(e => (long?)long.Parse(e)).ToList(),