Счётчик внутри анонимного метода. Непонятное поведение - 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д