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

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

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

Здравствуйте. Почему выводит 0, и только если раскомментировать строку, выведет 1?
Листинг программы
  1. using System.Collections.Generic;
  2. using System;
  3. using System.Linq;
  4. public class Programm
  5. {
  6. public static void Main()
  7. {
  8. int count = 0;
  9. List<string> Data = new List<string>() { "абв", "где", "ёжз" };
  10. var objcts = Data.Where(obj =>
  11. {
  12. if (obj == "где") { count++; return true; }
  13. return false;
  14. });
  15. //objcts.Count();//если раскомментировать, вывод 1
  16. Console.WriteLine(count);//вывод 0
  17. }
  18. }

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

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. // select - (Операция проекции) используется для производства конечного результата запроса.
  6.  
  7. namespace LINQ
  8. {
  9.     public class Result
  10.     {
  11.         public Result(int input, int output)
  12.         {
  13.             Input = input;
  14.             Output = output;
  15.         }
  16.  
  17.         public int Input { get; set; }
  18.         public int Output { get; set; }
  19.     }
  20.  
  21.     class Program
  22.     {
  23.         static void Main()
  24.         {
  25.             int[] numbers = { 1, 2, 3, 4 };
  26.  
  27.             // Построить запрос.
  28.             var query = from x in numbers
  29.                         select new Result(x, x * 2);
  30.  
  31.             numbers[0] = 777; // Выражение запроса выполняется в момент обращения к переменной запрса в foreach.
  32.  
  33.             foreach (var item in query)
  34.                 Console.WriteLine("Input = {0}, \t Output = {1}", item.Input, item.Output);
  35.  
  36.             // Delay.
  37.             Console.ReadKey();
  38.         }
  39.     }
  40. }

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


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

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

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы