我有以下代码,该代码将字符串拆分,然后将值转换为long:
string.IsNullOrEmpty(baIds) ? null : baIds.Split(',').Select(e => long.Parse(e)).ToList(),
我想要的是将值转换为可为空的long值。 有帮助吗?
答案 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();
}
答案 2 :(得分:0)
您可以使用此
string.IsNullOrEmpty(baIds) ? null : baIds.Split(',').Select(e => (long?)long.Parse(e)).ToList(),