【问题标题】:Does c# string have a length limit [duplicate]c#字符串是否有长度限制[重复]
【发布时间】:2010-12-20 01:37:31
【问题描述】:

可能重复:
What is the maximum possible length of a .NET string?

C# 字符串保存数据有限制吗?

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    字符串不能超过 231 个字符,因为 String.Length 是一个 32 位整数。

    它们还受到可用内存的限制。

    【讨论】:

    • 在 Microsoft CLR 中,最大长度实际上是 2**30 个字符,因为 CLR 对每个对象的大小施加了 2GB 的硬性限制,并且每个 UTF-16 字符占用 2 个字节。 (不确定其他实现,例如 Mono 是否也施加此限制。)
    【解决方案2】:

    string.Length 是 int,因此 string 可以包含 Int.MaxInt 字节 - 2,147,483,647

    【讨论】:

    • 这是一个糟糕的逻辑示例,因为虽然 String.Length 返回一个整数并且整数的最大值是 2,147,483,647 是正确的,但在多个层面上假设一个字符串可以存储与整数一样多的字符。
    猜你喜欢
    • 2011-04-19
    • 1970-01-01
    • 2012-11-09
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 2020-03-04
    相关资源
    最近更新 更多