Well, I prefer
if (s.Length == 0) …
/because/ it crashes for a null string. I almost never want a null string treated as equivalent to an empty one – the latter is a real value, the former is probably a not yet set up variable.
Far better a reliable crash which I’ll find and fix at development time than a program which quietly goes about its way and does the wrong thing.