У этого цикла есть инвариант: при входе в тело validExtension = false
.
Таким образом, тело можно упростить до:
if (validExtension = Path.GetExtension(file).Equals(extension.TrimStart('*'), StringComparison.InvariantCultureIgnoreCase))
break;
Если бы такого инварианта не было, вы могли бы использовать составной оператор присваивания |=
, если вы всегда хотели оценить правую часть, или if (!lhs) lhs = rhs;
, если вы хотели короткого замыкания.