using System.Collections.Generic;
public static void Main()
Dictionary<int, ExampleObject> list = new Dictionary<int, ExampleObject>
{1, new ExampleObject(1) },
{2, new ExampleObject(2) },
{3, new ExampleObject(3) },
{4, new ExampleObject(4) },
{5, new ExampleObject(5) },
{6, new ExampleObject(6) },
{7, new ExampleObject(7) }
Console.WriteLine("Using Direct");
foreach(KeyValuePair<int, ExampleObject> el in list)
Console.Write("\nBefore "+el.Value.Value.ToString());
Console.Write(" - After "+el.Value.Value.ToString());
Console.WriteLine("\nCould modify in foreach");
Console.WriteLine("Couldn't modify "+el.ToString());
list = new Dictionary<int, ExampleObject>
{1, new ExampleObject(1) },
{2, new ExampleObject(2) },
{3, new ExampleObject(3) },
{4, new ExampleObject(4) },
{5, new ExampleObject(5) },
{6, new ExampleObject(6) },
{7, new ExampleObject(7) }
Console.WriteLine("\nUsing Method");
foreach(KeyValuePair<int, ExampleObject> el in list)
Console.Write("\nBefore "+el.Value.Value.ToString());
Console.Write(" - After "+el.Value.Value.ToString());
Console.WriteLine("\nCould modify in foreach");
Console.WriteLine("Couldn't modify "+el.ToString());
list = new Dictionary<int, ExampleObject>
{1, new ExampleObject(1) },
{2, new ExampleObject(2) },
{3, new ExampleObject(3) },
{4, new ExampleObject(4) },
{5, new ExampleObject(5) },
{6, new ExampleObject(6) },
{7, new ExampleObject(7) }
Console.WriteLine("\nUsing Linq Direct");
list.ToList().ForEach(el =>
Console.Write("\nBefore "+el.Value.Value.ToString());
Console.Write(" - After "+el.Value.Value.ToString());
Console.WriteLine("\nCould modify in foreach");
Console.WriteLine("Couldn't modify "+el.ToString());
list = new Dictionary<int, ExampleObject>
{1, new ExampleObject(1) },
{2, new ExampleObject(2) },
{3, new ExampleObject(3) },
{4, new ExampleObject(4) },
{5, new ExampleObject(5) },
{6, new ExampleObject(6) },
{7, new ExampleObject(7) }
Console.WriteLine("\nUsing Linq Method");
list.ToList().ForEach(el =>
Console.Write("\nBefore "+el.Value.Value.ToString());
Console.Write(" - After "+el.Value.Value.ToString());
Console.WriteLine("\nCould modify in foreach");
Console.WriteLine("Couldn't modify "+el.ToString());
public class ExampleObject
public ExampleObject(int val)
public void Add(int addition)