Это выглядит хорошо для меня ... читается так же просто, как любое другое условие if.Единственное, что я мог бы изменить, это перебросить отрицания по поводу досрочного выхода:
if (someDictionary.TryGetValue(id, out stored) && stored == actual) {
return;
}
// store new value
Я не вижу в этом никакой путаницы, никогда не думал, что это особенно неприятная идиомаи смиренно предполагаю, что те разработчики C #, которые были смущены этим, привыкли к этому.Это обычное дело, лаконично, и дает столько LOC, сколько заслуживает.Превращение его в 10 строк кода делает его way слишком важным.
Если бы я использовал его часто, подходящим был бы метод расширения с именем что-то вроде ContainsEqualValue
, но я бы использовалточно такой же код в методе расширения, как у вас.