【发布时间】:2016-09-20 07:22:00
【问题描述】:
假设我有一个 C# 选项列表(这里称为 x),我通过删除空值创建一个新列表(这里新列表称为 y)
static void Main()
{
var x = new List<long?> { 7, 8, 9, null, 10, null, 11 };
var y = x.Where(e => e != null);
Console.WriteLine("{0}", y);
}
那么y的类型被推断为List<long?>。获得List<long> 类型的惯用方法是什么?显式展开或显式转换?还是有更清洁的方法?
在我正在处理的实际实现中,值作为可选列表进来,我需要将这些列表转换为下游的集合,因此“将责任推给后续操作”不是我想做的事情(尽管我可以稍后在代码中进行大量的空值检查......yuk)。我真的很想有一个长变量列表。在 C# 中如何最好地思考和处理这个问题?
【问题讨论】: