C#中Length的算法是怎么实现的?有没有哪位大神有做过的!?贴上来共享下咯!注:C#中Length计算 字符 字母 数字 中文 空格 都是算一位长度的!

解决方案 »

  1.   

    .net平台对字符串使用unicode编码,这个为理解的基础。
      

  2.   

    你仔细看看char的定义,就知道为什么了。。
      

  3.   

    c#默认是unicode,str="中国",这个长度也是
      

  4.   

    unicode肯定不是理解的基础,具体的算法,我也不是很清楚。以下内容出自微软,我想可能会对你有点儿帮助。 
    Length 属性返回此实例中 Char 对象的个数,而不是 Unicode 字符个数。 原因在于一个 Unicode 字符可能会用多个 Char 表示。 使用 System.Globalization.StringInfo 类来处理每个 Unicode 字符而不是每个 Char。 在某些语言(例如 C 和 C++)中,null 字符指示字符串的结尾。 在 .NET Framework 中,null 字符可以嵌入到字符串中。 当字符串包含一个或多个 null 字符时,这些空字符将包括在字符串的总长度中。 例如,在下面的字符串中,子字符串"abc"和"def"由一个 null 字符分隔。 Length 属性返回 7,表示它包含六个字母字符以及一个 null 字符。