将数据存储在列表中而不会丢失它们(C#)

时间:2018-03-09 23:27:45

标签: c# list max min

伙计们,我在C#中创建了一个程序,它将读取用户提供的收入和结果,并将它们存储在2个列表中。请求时,程序必须显示列表中存储的最小值和最大值。可以根据用户的需要添加IncomeOutgo值,每次添加值时,程序都会返回到菜单中,该菜单有3个选项:添加新收入,添加新值到目前为止,输出并显示最小/最大值。问题是,每次我尝试显示最小值/最大值时,程序都会告诉我:"System.InvalidOperationException: 'Sequence contains no elements',所以我认为列表中没有存储任何值。有人可以帮忙吗?谢谢!

class Class2
{
    List<double> income = new List<double>();
    List<double> outgo = new List<double>();
    Class1 c1 = new Class1();

   public void FunctionIncome()
    {
        Console.Clear();
        Console.Write("Income: ");
        income.Add(Convert.ToDouble(Console.ReadLine()));
        c1.options();
    }

    public void FunctionOutgo()
    {
        Console.Clear();
        Console.Write("Outgo: ");
        outgo.Add(Convert.ToDouble(Console.ReadLine()));
        c1.options();
    }

    public void functionMinMax()
    {
            double minI = income.Min();
            double maxI = income.Max();
            double minO = outgo.Min();
            double maxO = outgo.Max();

            Console.WriteLine($"Minimum income: {minI}\nMaximum income: {maxI}\nMinimum outgo: {minO}\nMaximum outgo: {maxO}");
            Console.ReadKey();
            c1.options();
    }

1 个答案:

答案 0 :(得分:0)

一个类表示对象的结构,但是不应该在长期使用中存储实际数据并且像数据库一样使用,在这种情况下,你将创建的第2类的每个对象都将有一个新的空双列表。 / p>

你可能认为解决方案是只有一个固定的类实例,一个静态类或单例,它可能会起作用,如果进程被终止或你退出应用程序,你仍然会丢失所有的数据,并且它无论如何都不是最好的做法

在这样的情况下你需要一些存储数据的地方,以便长期使用,如数据库,外部xml文件