之前发布的一个问题让我思考.在空列表中使用时会Any()和Count()执行类似吗?
正如这里所解释的,两者都应该经历相同的步骤GetEnumerator()/MoveNext()/Dispose().
我在LINQPad上使用快速程序测试了这个:
static void Main()
{
var list = new List<int>();
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
for (int i = 0; i < 10000; i++)
list.Any();
stopwatch.Stop();
Console.WriteLine("Time elapsed for Any() : {0}", stopwatch.Elapsed);
stopwatch = new Stopwatch();
stopwatch.Start();
for (int i = 0; i < 10000; i++)
list.Count();
stopwatch.Stop();
Console.WriteLine("Time elapsed for Count(): {0}", stopwatch.Elapsed);
}
Run Code Online (Sandbox Code Playgroud)
一般结果似乎表明Count()在这种情况下更快.这是为什么?
我不确定我的基准是否合适,如果不是,我会很感激.
编辑:我明白它在语义上会更有意义.我已经张贴在问题中的第一个链接显示的情况下它是有意义的做用Count(),直接原因是该值将被使用,因此这个问题.
我们正在创建一个应用程序,它将ASP.NET MVC4用于Web应用程序,而WCF用于访问公共数据存储的Web服务.
网络应用程序使用MvcMailer发送电子邮件,我希望有人可以指出一些资源,显示如何从WCF使用MvcMailer(如果所述资源存在).
我经历过:https://github.com/smsohan/MvcMailer/issues/44
我宁愿不滚动我自己的代码,但如果没有更好的解决方案,我愿意走这条路.
谢谢!