考虑以下计划,
List<string> l_lstRawData = new List<string>();
........
........
现在l_lstRawData填充了数据,例如
l_lstRawData[0] = "11111101101010................................0000011101010101";
l_lstRawData[1] = "11111101111111...............................0000011101010101";
l_lstRawData[2] = "11111101101010................................0000011101010101";
l_lstRawData[3] = "11100001101010................................0000011101010101";
l_lstRawData[4] = "11000101101010................................0000011101010101";
l_lstRawData[5] = "11111101101010................................0000011101010101";
现在我想要结果 List l_lstResultData = new List();
l_lstResultData [0] = "111111";
l_lstResultData [1] = "111111";
l_lstResultData [2] = "111101";
l_lstResultData [3] = "111001";
l_lstResultData [4] = "111001";
这是我正在使用的代码, l_lstRawData的长度等于l_lstRawData中的每个元素
string l_strTempData = "";
for(int l_nData;l_nData< l_lstRawData.Length;l_nData++)
{
l_strTempData = "";
for(int l_nItem = 0;l_nItem< l_lstRawData.Length;l_nItem++)
{
l_strTempData += l_lstRawData[**l_nData**].ToString();
}
l_lstResultData.Add(l_strTempData );
}
它需要很长时间,因为l_lstRawData长度的每个项目超过60,000 ..... 是否可以使用任何其他方法?
如果你有任何疑问,请回复我。
答案 0 :(得分:6)
哦,男孩,是的,字符串连接真的很慢。您应该考虑使用StringBuilder类
http://msdn.microsoft.com/en-us/library/2839d5h5%28VS.71%29.aspx
答案 1 :(得分:1)
您可以先使用stringbuilder而不是字符串连接。
其次,您在循环中所做的事情可以使用非常快的子字符串方法来完成。
答案 2 :(得分:0)
使用StringBuilder!字符串是不可改变的(它们不会改变)。每次连接字符串时,运行时都会使用新内容创建一个NEW字符串,并提供旧版本的垃圾收集。当你在循环中执行此操作时,这可能会成为一个重大问题。请改用StringBuilder,你会看到一个巨大的差异。