First, note that strings in .NET are very different from strings stored in unmanaged languages (such as C ++) ... In the CLR, the length of the string (in characters and bytes) is actually stored in memory so the CLR knows how large is the block of memory (an array of characters) containing the string. This is done when the string is created and does not change, given that the type System.String is immutable.
In C ++, this is completely different, since the length of the string is detected by reading to the first null character. Because of how memory usage works in the common language runtime, you can essentially assume that getting the Length property of a string is similar to retrieving an int variable. The cost of execution here will be absolutely minimal if that is what you are considering.
If you want to learn more about strings in .NET, try John Skeet's article on this topic - it looks like all the details you can ever learn about strings in .NET.
Noldorin
source share