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