After reading What's the rationale for null terminated strings? and some similar questions I have found that in C#/.Net strings are, internally, both length-prefixed and nul
Best guess is that finding the length is constant (O(1)) compared to traversing it, running in O(n).