我有一个二维对象数组(主要是字符串),我想使用LINQ按照一个字符串(
在这种情况下,数据集大约有10,000行和50列,但大小可能会有相当大的差异。如何优化此数据集,如果您有任何建议,请不吝赐教。
sSearch
)筛选。下面的查询可以工作,但速度不够快。我已将Count
更改为Any
,这导致速度显着增加,并用忽略大小写的正则表达式替换了Contains
,从而消除了对ToLower
的调用。联合起来,这减少了执行时间超过一半。现在非常明显的是,将搜索词的长度从1增加到2将使执行时间增加三倍,而从3到4个字符会有另一个跳跃(执行时间增加约50%)。尽管这显然并不令人惊讶,但我想知道是否有其他优化字符串匹配的方法?Regex rSearch = new Regex(sSearch, RegexOptions.IgnoreCase);
rawData.Where(row => row.Any(column => rSearch.IsMatch(column.ToString())));
在这种情况下,数据集大约有10,000行和50列,但大小可能会有相当大的差异。如何优化此数据集,如果您有任何建议,请不吝赐教。