小编Eas*_*der的帖子

Linq:只调用一次Where和OrderBy的方法而不是两次?

我有一个简单的linq查询,我需要在一定距离内过滤商店,并按距离计算结果排序,你明白了.

所以,我最后两次调用GetDistance方法.如何优化代码以便每个商店只调用一次?

double distance = 50;

var result = stores.Where<MyStore>( s =>
                 Helper.GetDistance( lat, lon, s.Lat, s.Lon ) <= distance )
                .OrderBy( s => Helper.GetDistance( lat, lon, s.Lat, s.Lon ) )
                .ToList();
Run Code Online (Sandbox Code Playgroud)

.net c# linq

10
推荐指数
2
解决办法
769
查看次数

从列表中选择所有字符串的最快方法

我正在寻找从一组字符开始查找集合中所有字符串的最快方法.我可以使用排序集合,但是我找不到在.net中执行此操作的便捷方法.基本上我需要在符合条件的集合中找到低和高索引.

列表<T>上的二进制搜索不保证返回的索引是第一个元素的索引,因此需要上下迭代以查找所有匹配的字符串,如果有一个大的列表则不会很快.

还有Linq方法(并行),但我不确定哪种数据结构会提供最好的结果.

列表示例,~10M记录:

aaaaaaaaaaaaaaabb
aaaaaaaaaaaaaaba
aaaaaaaaaaaaabc
...
zzzzzzzzzzzzzxx
zzzzzzzzzzzzzyzzz
zzzzzzzzzzzzzzzzzza
Run Code Online (Sandbox Code Playgroud)

从以下字符开始搜索字符串:skk ...

结果:记录从x到y的索引.

更新:字符串可以具有不同的长度并且是唯一的.

.net c# linq algorithm

5
推荐指数
1
解决办法
440
查看次数

标签 统计

.net ×2

c# ×2

linq ×2

algorithm ×1