我在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;
}
}
根据我的简介,该守则在if(badChars.Contains(buffer[i])
上花费了88%的时间。