小编Joh*_*art的帖子

为什么IEnumerable.Count()会重新评估查询?

当我期望"1 1 1 1"时,以下代码打印"2 2 2 2".为什么"Count()"会重新评估查询?

class Class1
{
    static int GlobalTag = 0;

    public Class1()
    {
        tag = (++GlobalTag);
    }

    public int tag;

    public int calls = 0;

    public int Do()
    {
        calls++;
        return tag;
    }
}

class Program
{
    static void Main(string[] args)
    {
        Class1[] cls = new Class1[] { new Class1(), new Class1(), new Class1(), new Class1() };

        var result = cls.Where(c => (c.Do() % 2) == 0);
        if (result.Count() <= 10)
        {
            if (result.Count() <= …
Run Code Online (Sandbox Code Playgroud)

c# linq

4
推荐指数
2
解决办法
422
查看次数

标签 统计

c# ×1

linq ×1