IEnumerable .Min如何处理Nullable类型?

时间:2011-03-23 22:45:13

标签: c#

因此,IEnumerable使用IComparable接口来评估对.Min()的调用。我无法确定可空类型是否支持此功能。假设我有一个int?,{null,1,2}的列表。 Will .Min()有效吗?

3 个答案:

答案 0 :(得分:13)

是的,它有效。

null既不大于也不小于任何非空值 - 至少对于内置类型而言。因此,除非所有值均为Min,否则在Maxnull计算中将有效忽略空值。

答案 1 :(得分:8)

following program

using System;
using System.Collections.Generic;
using System.Linq;

public class Test
{
    public static void Main()
    {
        List<int?> l = new List<int?>() {1, null, 2};
        Console.WriteLine(l.Min());
    }
}

输出1.如果列表是empty, or contains only null,则输出为null

因此null计为int的最大Min

答案 2 :(得分:0)

忽略空值:

static void Main()
{
    var values = new int?[] { null, 1, 2 };
    Console.WriteLine(values.Min());
}

打印1