不仅仅是关于LINQ [在这里插入您最喜欢的提供者],这个问题是关于搜索或过滤内存中的集合.
我知道LINQ(或搜索/过滤扩展方法)适用于实现IEnumerable
或的对象IEnumerable<T>
.问题是:由于枚举的性质,每个查询的复杂性至少为O(n)?
例如:
var result = list.FirstOrDefault(o => o.something > n);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,除非按顺序排序,否则每个算法至少需要O(n),在这种情况下,搜索应采用O(log(n)):它应该是二进制搜索.但是,如果我理解正确,这个查询将通过枚举来解决,所以它应该采用O(n),即使以前订购过.list
'something'
list
我最近在另一个关于C#运行时编译的网站上进行了简短的讨论,同时搜索了其他内容,并认为这个想法很有趣.你有没有用过这个?我试图确定如何/何时可以使用它以及它解决了什么问题.我会非常有兴趣听听你是如何使用它的,或者是在有意义的环境中.
非常感谢.
在Jesse Liberty的Learning C#书中,他说"一种类型的物体可以转换成另一种类型的物体.这就是所谓的铸造."
如果您调查从下面的代码生成的IL,您可以清楚地看到转换的赋值与转换的赋值没有做同样的事情.在前者中,你可以看到拳击/拆箱发生; 在后者中,您可以看到对convert方法的调用.
我知道最终它可能只是一个愚蠢的语义差异 - 但是只是转换了另一个词.我并不是故意嗤之以鼻,但我对任何人的直觉都不感兴趣 - 意见不计算在这里!任何人都可以指出确认或否认铸造和转换是否相同的确定性参考?
object x;
int y;
x = 4;
y = ( int )x;
y = Convert.ToInt32( x );
Run Code Online (Sandbox Code Playgroud)
谢谢
RP
注意在Matt关于显式/隐式的评论后添加:
我不认为隐含/显性是不同的.在我发布的代码中,两种情况下的更改都是明确的.隐式转换是指向int分配short时发生的情况.
Sklivvz注意事项:
我想要确认我对Jesse Liberty(通常是清晰和清晰)语言松散的怀疑是正确的.我以为Jesse Liberty的语言有点松散.我知道转换是在对象层次结构中路由的 - 也就是说,您不能从整数转换为字符串,但是您可以从从System.Exception派生的自定义异常转换为System.Exception.
但有趣的是,当您尝试从int转换为字符串时,编译器会告诉您它无法"转换"该值.也许杰西比我想象的更正确!
你什么时候使用bigtabe/simpledb数据库与Relational数据库?
我正在努力寻找一种更好的方法来将IRB与我正常的ruby开发相结合.目前我很少在我的代码中使用IRB.我只用它来验证语法或尝试小的东西.
我知道我可以将自己的代码加载到ruby中
require 'mycode'
Run Code Online (Sandbox Code Playgroud)
但这通常不符合我的编程风格.有时我想要检查的变量超出范围或在循环内部.是否有一种简单的方法来启动我的脚本并冻结在IRB内的某个点?我想我正在寻找一种更简单的方法来调试我的ruby代码,而不会破坏我的F5(编译)密钥.
也许更有经验的ruby开发人员可以与我分享更简化的开发方法.
情况:
我想玩IRC机器人作为我正在研究的其他代码的通用通信接口.服务器硬件将是旧的和低内存,但运行在相对最新的Debian GNU/Linux安装上.我不希望一次超过一百个用户,顶部,并且大多数时候可能只有一位数.这里的接口比服务器本身更受关注,所以我更喜欢一些相对简单的东西来维护大量的配置和调优选项对更大的站点更有用.
根据Debian的可用包列表引用Wikipedia比较和Google PageRank列表,可以得到以下顶级竞争者:Undernet(ircd-ircu),Ratbox(ircd-ratbox)和Inspire(inspircd).不幸的是,我找不到任何严肃的比较,所以我希望在这里提出一个更快的解决方案,而不是一次只尝试一个,直到有些事情让我感到沮丧.
我刚安装了Ganymede,正在探索一个旧项目.我的所有JSP都给了我奇怪的验证错误.我看到的东西像 -
Syntax error on token "}", delete this token
Syntax error on token "catch", Identifier expected
Syntax error, insert "Finally" to complete TryStatement
Run Code Online (Sandbox Code Playgroud)
我在这里做最好的练习,没有任何文章或任何东西,所以我认为Eclipse错误地将Java类验证器应用于我的JSP.关于如何阻止这种情况发生的任何想法?
在Options/Editors/File Associations下,我有以下JSP:
JSP Editor (default)
Web Page Editor
Text Editor
CSS JSP Editor
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
另外我认为这是正确的,但万一它不是,这是我的页面指令 -
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
Run Code Online (Sandbox Code Playgroud) 我在过去几天玩ASP.NET MVC并且能够构建一个小站点.一切都很好.
现在,我需要通过ViewData传递页面的META标签(标题,描述,关键字等).(我正在使用母版页).
你是如何处理这个的?先感谢您.
c# ×3
comparison ×2
java ×2
.net ×1
architecture ×1
asp.net-mvc ×1
bigtable ×1
casting ×1
clr ×1
cvs ×1
debugging ×1
disk-smart ×1
eclipse ×1
ganymede ×1
hardware ×1
irb ×1
irc ×1
jsp ×1
linq ×1
linux ×1
master-pages ×1
optimization ×1
performance ×1
relational ×1
ruby ×1
validation ×1