巨大的弦乐疯狂

时间:2016-03-21 10:55:48

标签: c# string

方案
我有一个包含106091个自定义对象的tableView。每个对象都有一个字符串属性,包含6个字符或9个字符。几乎有100000个对象的字符串属性长度为	 9'字符和剩余的6091个对象的长度为' 6'。这些字符串是用字符串变量写的:

List

最终将绑定到DataGridColumn。

问题
 但问题是它在循环中的某些地方失败了,我的代码会冻结而不会落入catch块。

问题
我怎么能优雅地过来呢? string IMDVals = string.Empty; foreach (Var Imd in Obj.Imds) { if (i < 50000) IMDVals += Imd.ImdValue + ", "; } 怎么样? 除了看起来,上面的字符串是巨大的,但不是它应该打破代码!不是吗?

1 个答案:

答案 0 :(得分:4)

您正以疯狂的速度创建和删除字符串。垃圾收集很可能是你最大的问题。

您可以使用后面使用StringBuilder的{​​{1}}或string.Join来防止过多的垃圾回收:

StringBuilder

或者:

string IMDVals = string.Join(",", Obj.Imds);