var data = mockDataDB.Data.AsQueryable()
.Select(x => new ProductDto
{
Id = Convert.ToInt64(x.id), // this might fail because id might be null
Quantity = Int32.TryParse(x.quantity, out int somenumber) ? x.quantity : (int?)null
}
此代码的问题是x.id
和x.quantity
有时可能为null,它们都是string
类型,id和数量分别是int64
和{{ 1}} ..
我如何安全地解决这个问题?
谢谢
欢呼
答案 0 :(得分:1)
您可以在TryParse中使用三元表达式进行内联,前提是您要牢记Id为null时的默认值。
~/.kube.
答案 1 :(得分:0)
类似这样的内容:Id = Int64.TryParse(x.id, out int somenumber) ? somenumber : 0
答案 2 :(得分:-1)
编辑: 您应该检查String变量(x.id)是否为null。如果是这样,则将其设置为零或所需的某个默认值。如果不是,则继续进行转换。 例如:
Id = (x.id == null) ? 0 : Convert.ToInt64(x.id);