字符串.Join抛出OutOfMemory异常
本文关键字:异常 OutOfMemory 抛出 Join 字符串 | 更新日期: 2023-09-27 18:17:12
我有一个字符串列表,我想在它们之间用" "(空格)连接它们,所以我使用字符串。连接方法:
foreach (var line in lines)
{
var strings = lines.Where(l => l.Code == line.Code).Select(l => l.Data);
var original = string.Join(" ", strings);
}
数据看起来像这样:"123456789,987654321,32132,7873892…"
但是我得到一个OutOfMemoryException。为什么?每个字符串大约有100-150个字符,列表中有5-10个字符串。
有比字符串。join更好的方法吗?
试试这个(如果你得到同样的错误,请告诉我们):
lines.GroupBy(l => l.Code).Select(l => string.Join(" ", l.Select (x => x.Data)));
foreach (var line in lines.GroupBy(p=>p.Code))
{
var original = string.Join(" ", line.Select(p=>p.Data));
}
StringBuild()类可以连接字符串,并且不是不可变的。
这是一篇MSDN文章,讨论不可变字符串与StringBuilder如何工作。http://msdn.microsoft.com/en-us/library/2839d5h5 (v = vs.71) . aspx