C# 当我试图将用户输入读取到列表中时,但从用户i';我有个例外
当我试图从用户那里读取输入时,它抛出一个类型为的异常 “System.ArgumentOutOfRangeException” 从用户处读取第一个数字后C# 当我试图将用户输入读取到列表中时,但从用户i';我有个例外,c#,generics,compilation,C#,Generics,Compilation,当我试图从用户那里读取输入时,它抛出一个类型为的异常 “System.ArgumentOutOfRangeException” 从用户处读取第一个数字后 class Program { static void Main(string[] args) { // Variable Declaration List<int> Marks = new List<int>(); int i, Sum = 0, Avg;
class Program
{
static void Main(string[] args)
{
// Variable Declaration
List<int> Marks = new List<int>();
int i, Sum = 0, Avg;
for (i = 0; i <= 3; i++)
{
Console.WriteLine("Enter Marks of Subject :");
**I'm getting an Exception here
It just reads one subjects marks and then throws exception
Marks[i] = int.Parse(Console.ReadLine());
Sum = Sum + Marks[i];**
}
Avg = Sum / 4;
Console.WriteLine("Your Total is {0} \n\nAverage is {1}", Sum, Avg);
Console.ReadLine();
}
}
}
类程序
{
静态void Main(字符串[]参数)
{
//变量声明
列表标记=新列表();
int i,总和=0,平均值;
for(i=0;i当您输入for
循环时,列表标记
为空。
因此,在第一次迭代中,i
等于0,但不能设置标记[i]
,因为没有标记[0]
。它是一个空集合
也许你想要什么而不是什么
Marks[i] = int.Parse(Console.ReadLine());
是
简化一点:
var mark = int.Parse(Console.ReadLine());
Marks.Add(mark);
Sum = Sum + mark;
或者,您可以等待for
循环完成,然后执行,而不是将每个标记一次添加到Sum
中
Sum = Marks.Sum();
当您为
循环输入时,列表标记
为空。
因此,在第一次迭代中,i
等于0,但不能设置标记[i]
,因为没有标记[0]
。它是一个空集合
也许你想要什么而不是什么
Marks[i] = int.Parse(Console.ReadLine());
是
简化一点:
var mark = int.Parse(Console.ReadLine());
Marks.Add(mark);
Sum = Sum + mark;
或者,您可以等待for
循环完成,然后执行,而不是将每个标记一次添加到Sum
中
Sum = Marks.Sum();
您正在尝试索引列表标记
,但未向其中添加任何项目。我怀疑您正在查找标记。添加(int.Parse(Console.ReadLine())
您正在混合数组和列表。感谢您的帮助。您正在尝试索引列表标记
而不向其中添加任何项目。我怀疑您正在查找标记。添加(int.Parse(Console.ReadLine());
您正在混合数组和列表。感谢您的帮助。