【发布时间】:2018-08-18 14:39:05
【问题描述】:
伙计们,我正在用 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();
}
【问题讨论】:
-
你在哪里调用这些函数?
FunctionIncome、FunctionOutgo等.. -
确保您的程序仅适用于
Class2的同一个对象实例。确保您的程序不会意外使用两个或更多 Class2 实例。 -
Class1和Class2是非常糟糕的类名称。还有Class1的定义在哪里?想想如何重构你的程序,让每条语句只写一次。 -
你尝试过静态列表吗?