-1
我有一个列表:查找产品慢
List<symbol> table = new List<symbol>();
我的类符号有这样的结构:
public class symbol
{
public byte c;
public ulong low;
public ulong high;
public ulong freq;
}
当我在列表循环正确的符号搜索,这花费太多时间: 刚例如:
sim = table.FirstOrDefault(x => x.c == b); //26 sec
sim = table.Where(i => i.c== b).FirstOrDefault(); //20 sec
sim = table.Find(x => x.c == b); //10 sec
sim = table[1]; //3 sec
这里是我的所有的程序,在这里我只更改此行的时间。 我的名单大小约为2-256,但我搜索的是100mil。 我想在我的例子中搜索必须更快,然后10秒。 如何在list<>
中更快速地搜索?或者存在没有相同结果的列表的快捷方案?
你能提供的列表的大小更多的细节?还有'c'代表什么?这些表演真的很奇怪..你还可以展示你如何测量它 –
'sim = table [1];'需要3秒? o.O –
你可以在循环中提供更多的代码吗? 你确定table [1]真的需要3秒吗?这只是一个内存列表的索引,应该是非常快的。 – ivanPfeff