【发布时间】:2014-08-10 09:46:59
【问题描述】:
我正在为MultiValueDictionary 创建一个扩展方法来封装频繁的ContainsKey 检查,我想知道创建空IReadOnlyCollection 的最佳方法是什么?
到目前为止我使用的是new List<TValue>(0).AsReadOnly(),但必须有更好的方法,相当于IEnumerable的Enumerable.Empty
public static IReadOnlyCollection<TValue> GetValuesOrEmpty<TKey, TValue>(this MultiValueDictionary<TKey, TValue> multiValueDictionary, TKey key)
{
IReadOnlyCollection<TValue> values;
return !multiValueDictionary.TryGetValue(key, out values) ? new List<TValue>(0).AsReadOnly() : values;
}
【问题讨论】:
-
并非如此,因为
IReadOnlyCollection只是一个包装器。您可以考虑返回一个IEnumerable<Value>,或者通常没有Add和Remove方法。
标签: c# .net readonly-collection multi-value-dictionary