生成大量字符串时的OOM异常

时间:2015-01-27 21:56:13

标签: c# asp.net performance

我试图生成大量的字符串。在我的小示例代码中,它按预期工作,但我想要的结果的字符串长度为8,而不是像下面的3,这会导致内存不足异常。

有没有办法更有效地运行它?

string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
string numbers = "0123456789";
var query = from c1 in chars 
            from c2 in chars 
            from d1 in digits 
            select string.Format("{0}{1}{2}", c1, c2, d1);
string[] possibleCombinations = query.ToArray();

1 个答案:

答案 0 :(得分:0)

请勿调用ToArray()方法!这导致了内存的分配。如果您只是遍历查询,则枚举器会遍历所有可能的结果。你需要等待很长时间才能遍历所有结果。