19

頻繁なチェックをカプセル化するためにMultiValueDictionaryの拡張メソッドをContainsKey作成していますが、空のIReadOnlyCollection?.

私がこれまで使ってきたnew List<TValue>(0).AsReadOnly()IEnumerableEnumerable.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;
}
4

5 に答える 5