我在 C# 中搜索虚拟列表视图时遇到问题。
我现在正在做的是读取一个大的日志文件。这是我迄今为止实施的
我一次读一行文件,并记下行首的位置。将这些位置添加到列表中,并在调用 RetrieveVirtualItem 时 - 使用项目的索引和列表查找文件中的位置,然后从文件中读取该行。
所以读取文件时没有延迟。
我现在想搜索项目。这是我到目前为止所想到的,但我一直未能成功实施。
我实际上并没有搜索列表视图,但在我的文件读取过程中,我标记了特定字符串的命中位置,例如“INFO”。如果它命中,我将位置添加到列表中。
当调用 RetrieveVirtualItem 时,我只是读回了所有命中的行。
似乎通过调试 -if (line.IndexOf("INFO", StringComparison.OrdinalIgnoreCase) >= 0)
没有击中任何匹配项。我不知道为什么,有人帮忙吗?
using (var sr = new myStreamReader("test.log"))
{
while ((line = sr.ReadLine()) != null)
{
if (line.IndexOf("INFO", StringComparison.OrdinalIgnoreCase) >= 0)
{
position = sr.BytesRead;
Search.Add(position);
searchcount++;
}
}
newMessageView.VirtualListSize = searchcount;
}