我有一个返回ILookup
的方法。在某些情况下,我想返回一个空的ILookup
作为提前退出。构造空ILookup
的最佳方法是什么?
最佳答案
除了mquander和Vasile Bujac的答案之外,您还可以创建一个漂亮,简单的单例EmptyLookup<K,E>
类,如下所示。 (我认为,按照Vasile的回答,创建完整的ILookup<K,E>
实现似乎没有多大好处。)
var empty = EmptyLookup<int, string>.Instance;
// ...
public static class EmptyLookup<TKey, TElement>
{
private static readonly ILookup<TKey, TElement> _instance
= Enumerable.Empty<TElement>().ToLookup(x => default(TKey));
public static ILookup<TKey, TElement> Instance
{
get { return _instance; }
}
}