c# - 字符串实习——这段代码应该只在内存中创建 10 个字符串吗?

标签 c#

似乎创造了更多。请在这里建议为什么或如何正确实习。

谢谢

        IList<string> list = new List<string>(10000);

        for (int i = 0; i < 10000; i++)
        {
            for (int k = 0; k < 10; k++)
            {
                list.Add(string.Intern(k.ToString()));
            }
        }

        Console.WriteLine("intern Done");
        Console.ReadLine();

最佳答案

它会在循环过程中创建更多(每次迭代都会生成一个新字符串,然后用内部值替换),但是您的结果列表应该只有 10 个唯一引用内部字符串值。

完成后,实习表应包含 10 个字符串(用于 k 的值),以及“intern Done”和应用中的任何其他文字字符串。

关于c# - 字符串实习——这段代码应该只在内存中创建 10 个字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2502522/

相关文章:

c# - 控件的名称不存在,即使它存在

c# - 如何交换列表中的 2 个元素

c# - 从 Ilist<> 到 List<> 的 Linq 查询转换

c# - 如何使用 JQuery 使以前的 DIV 文本加粗

c# - 如何在c#中将二维整数数组元素转换为字符串?

c# - Collada (dae) 可以用作内容吗?

c# - Visual Studio 中 Goto 定义和 Goto 实现的区别

c# - 强制构建静态对象

c# - Automapper:在配置文件上设置 AllowNullCollections

c# - 如何在字典中插入第一个元素?