【问题标题】: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 是正确的,但在多个层面上假设一个字符串可以存储与整数一样多的字符。