Tag: null coalescing

IEnumerable null合并扩展

在经过foreach或LINQ查询迭代之前,我经常面临检查IEnumerable是否为null的问题,然后我经常会遇到这样的代码: var myProjection = (myList ?? Enumerable.Empty()).Select(x => x.Foo)… 因此,我想将此扩展方法添加到Extensions类: public static class MyExtensions { public static IEnumerable AsEmptyIfNull(this IEnumerable source) { return source ?? Enumerable.Empty(); } } 在我看来这个代码时会立即出现一个小问题,即,考虑到扩展方法的“实例方法方面” ,它应该仅仅作为一个静态方法来实现,否则这样的东西是完全合法的: IEnumerable list = null; list.AsEmptyIfNull(); 你看到使用它有任何其他缺点吗? 如果大量使用,这种扩展会导致开发人员出现某种不良趋势吗? 奖金问题: 你能建议一个更好的名字吗? 🙂 (英语不是我的第一语言,那么我在命名方面不太好…) 提前致谢。

C#Null与LINQ合并

我有2个类,看起来像这样: class Widget { string Selected { get; set; } List Options { get; set; } } class Option { string InternalCode { get; set; } string ExternalCode { get; set; } } 使用每个客户端的不同数据动态填充Options ,以显示ExternalCode作为选项 Selected使用ExternalCode填充。 然后我需要访问匹配的InternalCode 。 目前我这样做: var option = widget.Options.SingleOrDefault(o => o.ExternalCode == widget.Selected); var internalCode = option == null ? string.Empty […]