我无法弄清楚如何用“”替换空格。因为我在此代码中收到DbNull错误:
var subFields = permCollection
.Where(item=>fields.Contains(item.FBFieldName))
.Select(a=>a.FBSubFieldName)
.ToList();
FBSubFieldName的某些值为空,有些则不是。 有什么想法吗?
答案 0 :(得分:4)
由于这是强类型的DataTable
,如果您访问可以为空的属性并且它为null,则会抛出异常(默认情况下)。
您有一个自动生成的bool
属性,指示它是否为null,请将其与conditional operator(?)一起使用:
var subFields = permCollection
.Where(item => fields.Contains(item.FBFieldName))
.Select(item => item.IsFBSubFieldNameNull ? "" : item.FBSubFieldName)
.ToList();
答案 1 :(得分:1)
可能是这样的:
var subFields = permCollection
.Where(item=>item.FBSubFieldName!=null && fields.Contains(item.FBFieldName) )
.Select(a=>a.FBSubFieldName)
.ToList();
我在此假设,根据提供的代码,FBSubFieldName
是Select
中查询的相同“数据”的字段。
如果这不是您所要求的,请澄清。
答案 2 :(得分:0)
您需要在字段上测试DBNull。 尝试初学者
var subFields = permCollection
.Where(item=>!(item.FBSubFieldName is System.DBNull) && fields.Contains(item.FBFieldName) )
.Select(a=>a.FBSubFieldName)
.ToList();