1

我不知道如何用“”替换空格。因为我在此代码中收到 DbNull 错误:

var subFields = permCollection
    .Where(item=>fields.Contains(item.FBFieldName))
    .Select(a=>a.FBSubFieldName)
    .ToList();

FBSubFieldName 的某些值是空白的,而有些则不是。有任何想法吗?

4

3 回答 3

4

由于这是一个强类型DataTable,因此如果您访问一个可为空的属性并且它为空,则会引发异常(默认情况下)。

您有一个自动生成的bool属性,指示它是否为空,将其与条件 operator(?)一起使用:

var subFields = permCollection
    .Where(item  => fields.Contains(item.FBFieldName))
    .Select(item => item.IsFBSubFieldNameNull ? "" : item.FBSubFieldName)
    .ToList();
于 2013-10-22T21:47:39.657 回答
1

可能是这样的:

var subFields = permCollection
    .Where(item=>item.FBSubFieldName!=null && fields.Contains(item.FBFieldName) )
    .Select(a=>a.FBSubFieldName)
    .ToList();

我在这里假设,根据提供的代码,FBSubFieldName是在 中查询的相同“数据”的字段Select

如果这不是您所要求的,请澄清。

于 2013-10-22T21:46:12.077 回答
0

您需要在字段上测试 DBNull。尝试让初学者

var subFields = permCollection
.Where(item=>!(item.FBSubFieldName is System.DBNull) && fields.Contains(item.FBFieldName) )
.Select(a=>a.FBSubFieldName)
.ToList();
于 2013-10-22T21:49:15.453 回答