我在XML文件上使用XML文本閱讀器,該文件可能包含對讀者無效的字符。我最初的想法是創建我自己的流媒體閱讀器版本,並清除壞字符,但這會嚴重影響我的程序。如何快速替換數組中的字符
public class ClensingStream : StreamReader
{
private static char[] badChars = { '\x00', '\x09', '\x0A', '\x10' };
//snip
public override int Read(char[] buffer, int index, int count)
{
var tmp = base.Read(buffer, index, count);
for (int i = 0; i < buffer.Length; ++i)
{
//check the element in the buffer to see if it is one of the bad characters.
if(badChars.Contains(buffer[i]))
buffer[i] = ' ';
}
return tmp;
}
}
根據我的探查的代碼會耗費其時間的88%,在if(badChars.Contains(buffer[i]))
是什麼做到這一點,所以我不會引起可怕緩慢的正確方法?
你用'tmp'做什麼? – 2011-03-10 15:31:14
'badChars.Contains()'是什麼樣的? – 2011-03-10 15:31:54
我認爲最好能夠看到它需要的時間總量,而不是與其他任何事物相比較。它是否強加這麼多額外的時間? – 2011-03-10 15:33:03