内联if语句不工作
本文关键字:工作 语句 if 内联 | 更新日期: 2023-09-27 18:10:03
由于某种原因,当我将三元if语句添加到这段代码中时,抛出了一个NullPointerException。我不太确定为什么……什么好主意吗?这是jqGrid的方法——返回Json数据。
var gridModel = from entity in vendorList.AsQueryable()
select new
{
VendorId = "<a href='/Admin/DetailsPlan/" + entity.VendorId + "'><img src='/Images/next_icon_sm.png' class='icon' alt='View Vendor' /></a>",
VendorNm = entity.VendorNm,
Phone = (entity.Phone.Length < 5) ? String.Format("{0:(###) ###-####}", Convert.ToInt64(entity.Phone)) : entity.Phone,
City = entity.City,
State = entity.LkState.StateAbbr
};
不能在该位置使用三元if语句吗?
var gridModel = from entity in vendorList.AsQueryable()
let unformattedPhone = entity.Phone??string.Empty
select new
{
VendorId = "<a href='/Admin/DetailsPlan/" + entity.VendorId + "'><img src='/Images/next_icon_sm.png' class='icon' alt='View Vendor' /></a>",
VendorNm = entity.VendorNm,
Phone = (unformattedPhone.Length < 5) ? String.Format("{0:(###) ###-####}", Convert.ToInt64(unformattedPhone)) : unformattedPhone,
City = entity.City,
State = entity.LkState.StateAbbr
};
一个问题,是实体。电话空吗?如果是这样,那就是原因。
边注:我不得不说,这是一种奇怪的存储电话号码的方式。更新
问题在于"entity.Phone"。长度"部分。如果Phone是null,那么你就不能访问它的length属性…因此产生了错误。所以你需要添加一个空测试。比如:
Phone = ((entity.Phone != null) && (entity.Phone.Length < 5)) ? String.Format("{0:(###) ###-####}", Convert.ToInt64(entity.Phone)) : entity.Phone
这样,如果它是空的,你只是发出一个空值