从大型集合中获取前10条记录并使用自定义OrderBy的好方法是什么?如果我使用LINQ to Objects OrderBy方法,它会很慢并占用大量内存,因为它会使用新订单创建一个完整的新集合.我想要一个带有下面签名的新方法,它不会重新整理整个集合并且非常快:
public static IEnumerable<TSource> OrderByTop<TSource, TKey>(
IEnumerable<TSource> source,
Func<TSource, TKey> keySelector,
IComparer<TKey> comparer,
int topCount)
Run Code Online (Sandbox Code Playgroud)
我试着写它但它变得非常复杂,我想可能有更简单的方法使用Aggregate或其他东西.任何帮助,将不胜感激.
回答
谢谢您的帮助.我最终得到了以下代码:
public static List<TSource> OrderByTop<TSource, TKey>(
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector,
IComparer<TKey> comparer,
int topCount)
{
var itemComparer = keySelector.ToIComparer(comparer);
return source.Aggregate(
new List<TSource>(topCount),
(List<TSource> list, TSource item) =>
list.SortedInsert(item, itemComparer, topCount));
}
Run Code Online (Sandbox Code Playgroud)
List Extension方法SortedInsert如下:
public static List<T> SortedInsert<T>(
this List<T> list,
T item,
IComparer<T> comparer,
int maxLength)
{
if (list.Count == maxLength)
if (comparer.Compare(item, list[maxLength - 1]) >= …Run Code Online (Sandbox Code Playgroud) 我有一个名为的控制器Movie,其中有一个名为的动作ByYear,它将年份作为参数:
public ActionResult ByYear(int year)
{
ViewData["Title"] = string.Format("Movies released in {0}", year);
var repository = MvcApplication.GetRepository();
var movies = repository.Medias
.OfType<Movie>()
.Where(m => m.Year == year);
return View("Index", movies);
}
Run Code Online (Sandbox Code Playgroud)
我想使用以下URL访问此操作:/ Movie/ByYear/{year},但此操作的唯一有效路由是:/ Movie/ByYear?year = {year}.
我尝试在我的应用程序的RegisterRoutes方法中添加新路由,但我找不到获得所需结果的方法...
谁能告诉我如何实现这一目标?
注意:这实际上与这个问题非常相似,但没有接受答案,而且最高的投票答案对我来说没有任何意义,因为我对MVC完全不熟悉......
Django的一个重要特性是你可以打开一个python解释器设置,用于你的项目.这可用于分析数据库中的对象,并允许在项目上执行任何python命令.我发现Django开发很重要.使用以下命令在项目目录中调用它:
$ python manage.py shell
Run Code Online (Sandbox Code Playgroud)
我刚开始开发一个新项目,由于某种原因,shell不起作用.我已经在线查看错误,但没有找到任何内容.我非常感谢有关此错误的任何帮助:
Traceback (most recent call last):
File "manage.py", line 11, in
execute_manager(settings)
File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 362, in execute_manager
utility.execute()
File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 303, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 195, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 222, in execute
output = self.handle(*args, **options)
File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 351, in handle
return self.handle_noargs(**options)
File "/Library/Python/2.6/site-packages/django/core/management/commands/shell.py", line 29, in handle_noargs
shell = IPython.Shell.IPShell(argv=[])
AttributeError: 'module' object has no attribute 'Shell'
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
我正在使用SQL Server并编写一个blogtool.
我想存储超过4000个字符的文本,并希望它可以快速搜索.
ntext是否是正确的数据类型?
我以前在Windows上使用Visual SVN.现在我在Mac OSX上.
有没有人知道MAC OSX的SVN服务器在Windows上和Visual SVN一样容易使用?我不想输入控制台命令,我想要一个简单的用户界面:-)
干杯
请考虑以下代码片段:
图表A:
$_REQUEST = json_decode(stripslashes(json_encode($_REQUEST, JSON_HEX_APOS)), true);
Run Code Online (Sandbox Code Playgroud)
图表B:
${'_REQUEST'} = json_decode(stripslashes(json_encode(${'_REQUEST'}, JSON_HEX_APOS)), true);
Run Code Online (Sandbox Code Playgroud)
图表C:
${'_' . 'REQUEST'} = json_decode(stripslashes(json_encode(${'_' . 'REQUEST'}, JSON_HEX_APOS)), true);
Run Code Online (Sandbox Code Playgroud)
两个展览A和B都完美地工作,展示C然而显示一个非常奇怪的错误信息:
注意:未定义的变量:_REQUEST
让它更奇怪的是,这只发生在$_REQUEST超全球,如果我尝试$_GET,$_POST或$_COOKIE所有实验工作正常而不提出错误通知.
我猜这是一个PHP bug?我正在跑步PHP 5.3.0.
嗨,我想在ita中翻译Date :: ABBR_DAYNAMES中的名字,所以我把它放在locales/it.yml中:
date:
formats:
default: "%d-%m-%Y"
short: "%d %b"
long: "%d %B %Y"
day_names: [Domenica, Lunedì, Martedì, Mercoledì, Giovedì, Venerdì, Sabato]
abbr_day_names: [Dom, Lun, Mar, Mer, Gio, Ven, Sab]
Run Code Online (Sandbox Code Playgroud)
在我看来,我尝试翻译一天但不起作用:
<%=t Date::ABBR_DAYNAMES %>
Run Code Online (Sandbox Code Playgroud)
我能怎么做?
谢谢
gcc c89
我遇到了这段代码.
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int32 uint64_t;
Run Code Online (Sandbox Code Playgroud)
我只是想知道那是__int32我不认为那是一种类型?为什么是下划线?
这是否意味着我可以做这样的事情?
typedef __int32 myInt32;
Run Code Online (Sandbox Code Playgroud)
非常感谢任何建议,
几天前我在我的ruby on rails 2.3.2上安装了Sphinx和Thinking-Sphinx,并且基本搜索效果很好.这意味着,没有任何条件.现在,我想用一些条件过滤搜索.
我有Announcement模型,索引如下:
define_index do
indexes title, :as => :title, :sortable => true
indexes description, :as => :description, :sortable => true
end
Run Code Online (Sandbox Code Playgroud)
也许我错了,但我注意到只有当我将:sortable => true语法添加到这些属性时,我才能在搜索中使用它们作为条件.否则它什么都找不到.
现在,我还使用acts_as_taggable_on插件,它生成了我的两个数据库表:标签和标签.我没有标签模型,我只是acts_as_taggable_on :tags, :categories在我的公告模型.
我现在要做的是按标签过滤.所以,我尝试添加到我的索引 has tags(:id), :as => :tag_ids没有运气,indexes tags(:id), :as => :tag_ids但也没有用.
我如何构建索引,以便我可以这样做:
Announcement.search 'some word', :conditions => {:tag_ids => some_id}
Run Code Online (Sandbox Code Playgroud)
而且,这之间的不同has和indexes
谢谢,Brian
c# ×3
.net ×1
asp.net-mvc ×1
c ×1
django ×1
dll ×1
linq ×1
macos ×1
performance ×1
php ×1
python ×1
routes ×1
ruby ×1
shell ×1
sphinx ×1
sql-order-by ×1
sql-server ×1
svn ×1