需要检查Item是否为null

时间:2013-12-13 13:32:11

标签: c# .net if-statement nullable

如何检查此项目是否具有值

int? b = null

if (/*b has a value*/)
    //Do Work

我的朋友说尝试这个并且它有效但看起来很复杂

return (new List<int?>() { b }).Any(a => a != null);

6 个答案:

答案 0 :(得分:1)

您需要使用HasValue

根据MSDN

  

获取一个值,该值指示当前Nullable对象是否具有其基础类型的有效值。

所以试试:

if (b.HasValue)

答案 1 :(得分:1)

Nullable支持==和!=运算符,并且它们还具有HasValue属性,只要它们实际保存值(非空),它就为true。

if(b != null)
{
// do stuff
}

if(b.HasValue)
{
//do stuff
}

工作方式一样。

答案 2 :(得分:0)

int? b = null;
if(b.HasValue)
{
    // do your work
}

看看这个:Nullable Types (MSDN)

  

使用HasValue和Value只读属性测试null并检索值,如以下示例所示:if(x.HasValue) j = x.Value;

答案 3 :(得分:0)

您可以使用

if(b != null)
{
}

if(b.HasValue)
{
}

您现有的代码实际上是使用第一个代码,尽管是以非常复杂的方式。

答案 4 :(得分:0)

你可以尝试

return b==null?0:b;

答案 5 :(得分:0)

if(b!=null)
{
    var c = b.Value; //Where c will be of type int
}

您可以直接使用

var c = b.GetValueOrDefault(32); //Where 32 will be given, if b is null