I think people who last looked at C# 10 years ago or haven't adapted to new language features seriously don't know how good C# is these days.
Switch expressions with pattern matching are absolutely killer[0] for its terseness.
Also, it is possible to use OneOf[1] and Dunet[2] to get access to DU
[0] https://timdeschryver.dev/blog/pattern-matching-examples-in-...