Счётчик внутри анонимного метода. Непонятное поведение - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Почему выводит 0, и только если раскомментировать строку, выведет 1?
using System.Collections.Generic;
using System;
using System.Linq;
public class Programm
{
    public static void Main()
    {
        int count = 0;
 
        List<string> Data = new List<string>() { "абв", "где", "ёжз" };
 
        var objcts = Data.Where(obj =>
        {
            if (obj == "где") { count++; return true; }
            return false;
        });
 
        //objcts.Count();//если раскомментировать, вывод 1
 
        Console.WriteLine(count);//вывод 0
    }
}

Решение задачи: «Счётчик внутри анонимного метода. Непонятное поведение»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
 
// select - (Операция проекции) используется для производства конечного результата запроса.
 
namespace LINQ
{
    public class Result
    {
        public Result(int input, int output)
        {
            Input = input;
            Output = output;
        }
 
        public int Input { get; set; }
        public int Output { get; set; }
    }
 
    class Program
    {
        static void Main()
        {
            int[] numbers = { 1, 2, 3, 4 };
 
            // Построить запрос.
            var query = from x in numbers
                        select new Result(x, x * 2);
 
            numbers[0] = 777; // Выражение запроса выполняется в момент обращения к переменной запрса в foreach.
 
            foreach (var item in query)
                Console.WriteLine("Input = {0}, \t Output = {1}", item.Input, item.Output);
 
            // Delay.
            Console.ReadKey();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы