Tôi đang cố gắng hiểu chuỗi thực tập và tại sao dường như không hoạt động trong ví dụ của tôi. Điểm của ví dụ là để hiển thị Ví dụ 1 sử dụng ít hơn (bộ nhớ ít hơn rất nhiều) vì nó chỉ nên có 10 chuỗi trong bộ nhớ. Tuy nhiên, trong đoạn code dưới đây cả hai ví dụ sử dụng khoảng cùng một lượng bộ nhớ (kích thước ảo và bộ làm việc).C# string interning
Hãy tư vấn tại sao ví dụ 1 không sử dụng ít bộ nhớ hơn nhiều? Cảm ơn
Ví dụ 1:
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();
Ví dụ 2:
IList<string> list = new List<string>(10000);
for (int i = 0; i < 10000; i++)
{
for (int k = 0; k < 10; k++)
{
list.Add(k.ToString());
}
}
Console.WriteLine("intern Done");
Console.ReadLine();
Không phải là câu hỏi này rất giống một bạn hỏi ngày hôm qua? http://stackoverflow.com/questions/2502522/string-interning-should-this-code-only-create-10-strings-in-memory –
có giống nhau, nhưng không giống nhau – CodingThunder