我有一个:
DateTime?[] dates
我需要转换为:
Double?[] oaDates
有什么办法可以清理这一个衬垫?还是我应该诉诸一个功能?
DateTime?[] dates = new DateTime?[]{DateTime.Now, DateTime.Now.AddDays(1), DateTime.Now.AddDays(2)}; //example array
Double?[] oaDates = dates.Select(t => (t==null)?((double?)null):(t??DateTime.MinValue).ToOADate()).ToArray();
我不能在 t 上调用方法而不检查它是否为空(因此是三级运算符),我也必须合并它以便我可以调用 OADate(因此永远不会命中的合并和填充 DateTime.MinValue)。
它可以在一行中完成工作,但它看起来有点像 perl。
也许是一种扩展方法?这样我就可以隐藏丑陋并按照以下方式做一些事情:
dates.ToNullableOADates();