操作历史记录C#

操作历史记录C#,c#,generics,calculator,C#,Generics,Calculator,你好,我有个问题,我刚开始我的c#冒险,我有个问题,我想做计算器操作的历史,我的代码工作,但我想做最后10次操作的历史,但它只显示最后一次操作 public class CalculationHistory { public CalculationHistory() { Items = new List<CalculationHistoryItem>(); } public List&l

你好,我有个问题,我刚开始我的c#冒险,我有个问题,我想做计算器操作的历史,我的代码工作,但我想做最后10次操作的历史,但它只显示最后一次操作

public class CalculationHistory
    {
        public CalculationHistory()
        {
            Items = new List<CalculationHistoryItem>();
        }

        public List<CalculationHistoryItem> Items { get; set; }

        public void Add(double x, double y, string z)
        {
            Items.Add(new CalculationHistoryItem(x, y, z));
        }

    }

    public class CalculationHistoryItem
    {
        public double x { get; set; }
        public double y { get; set; }
        public string z { get; set; }

        public CalculationHistoryItem(double first, double sec, string res)
        {
            x = first;
            y = sec;
            z = res;
        }
    }

问题的原因是,对于每个新的计算操作,都会创建一个新的“CalculationHistory”对象。因此,每个CalculationHistory对象都保留自己的历史记录

解决方案:在循环外定义一个对象

CalculationHistory history = new CalculationHistory();
为每个操作添加到同一对象

Console.WriteLine("Lista ostatnich operacji : ");
history.Add(x, y, z);
foreach (var item in history.Items)
    Console.WriteLine(item);
break;

这是因为您正在创建新的历史记录,而不是使用现有的历史记录
Console.WriteLine("Lista ostatnich operacji : ");
history.Add(x, y, z);
foreach (var item in history.Items)
    Console.WriteLine(item);
break;