伙计们,我在C#中创建了一个程序,它将读取用户提供的收入和结果,并将它们存储在2个列表中。请求时,程序必须显示列表中存储的最小值和最大值。可以根据用户的需要添加Income
和Outgo
值,每次添加值时,程序都会返回到菜单中,该菜单有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();
}
答案 0 :(得分:0)
一个类表示对象的结构,但是不应该在长期使用中存储实际数据并且像数据库一样使用,在这种情况下,你将创建的第2类的每个对象都将有一个新的空双列表。 / p>
你可能认为解决方案是只有一个固定的类实例,一个静态类或单例,它可能会起作用,如果进程被终止或你退出应用程序,你仍然会丢失所有的数据,并且它无论如何都不是最好的做法
在这样的情况下你需要一些存储数据的地方,以便长期使用,如数据库,外部xml文件