using System; using System.Collections.Generic; public class Test { public static void Main() { int x = 0; example original_example = new example(0); List examples = new List(); while (++x < 10) { examples.Add(new example(original_example, x)); } foreach(example _example in examples) Console.WriteLine(_example.number1 + " // " + _example.number2); } public class example { public int number1; public int number2 { get { return (int)values["number"]; } } public bool original = true; Dictionary values = new Dictionary(); public example(int number) { original = true; number1 = number; values.Add("number", number); } public example(example original_example, int number) { original = false; values = new Dictionary(original_example.values); values["number"] = number; number1 = number; } } }