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