相关疑难解决方法(0)

Linq Count()比List.Count或Array.Length更快还是更慢?

LINQ Count()方法是否比List<>.Count或更快或更慢Array.Length

.net c# linq

45
推荐指数
3
解决办法
2万
查看次数

C#:Any()vs Count()表示空列表

之前发布的一个问题让我思考.在空列表中使用时会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(),直接原因是该值将被使用,因此这个问题.

.net c#

27
推荐指数
1
解决办法
1万
查看次数

标签 统计

.net ×2

c# ×2

linq ×1