Счётчик внутри анонимного метода. Непонятное поведение - 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();
}
}
}