Здравствуйте, AndrewVK, Вы писали:
X>>AsReadOnlyCollection, AsReadOnlyList (по аналогии с Enumerable::AsEnumerable)?
AVK>Хм, а в каком сценарии такое может быть? Кто неявно RO коллекции возвращает?
Когда есть List<string> к примеру или string[], а вернуть нужно KeyValuePair<int, IReadOnlyCollection<string>>. Такой метод кажется лучшим решением, чем тайп-каст.
Кстати, ещё я часто использую тип Pair с расширениями для KeyValuePair самым важным из которых являестя Pair.Create<,>()
AVK>>>Расширения для словарей
AVK>>> * GetValueOrDefault
X>>Для какого типа это будет расширением? Если сделать для IDictionary<,> то не будет работать для IReadOnlyDictionary<,> (и vice versa); если сделать для обоих, то компилятор откажется компилировать вызов у Dictionary<,>
AVK>Почему не откажется?
Не понял. Компилятор как раз откажется.
AVK>>>Прочее
X>>Memoize я так понял не нужен?
AVK>Не знаю. В каком виде он предполагается? Хелпер с лямбдой в параметрах или что?
Обычно да и с параметрами — какой уровень потокобезопастности нужен, как у Lazy<>