/ *这是一个使用c#向数组添加值的简单代码,然后只是打印它们。但是为了做到这一点,我遇到了错误。可能出现什么错误? * /
int size = 0, k = 0;
Console.WriteLine("Enter size of array: ");
size = Console.Read();
string[] array = new string[size];
for (int i = 0; i < size; i++)
{
Console.WriteLine("Enter at index: {0}", i);
array[i] = Console.ReadLine();
}
foreach (string s in array)
{
Console.WriteLine("Value at index: {0}", k++ + " = " + s);
}
答案 0 :(得分:2)
k++
foreach循环中的会起作用。
<小时/> 我实际上只是写:
Console.WriteLine("Value at index: {0} = {1}", k++, s);
答案 1 :(得分:0)
Twothings:
1)string [] array = new string [size];可能无法编译,你可以得到一个负数
2)Console.WriteLine(“索引处的值:{0}”,k +“=”+ s); - &GT;应该是我认为Console.WriteLine(“索引值:{0}”+ k +“=”+ s);
答案 2 :(得分:0)
我相信你可以通过更改foreach循环中的代码来实现你想要的,如下所示:
Console.WriteLine("Value at index {0}: {1}", k++, s);
(看起来Joe在他的回答中已经有了这个解决方案)。
{0}
是格式化字符串参数之后的Console.WriteLine方法的第一个参数值的占位符。
{1}
是格式字符串参数之后的Console.WriteLine方法的第二个参数值的占位符。
我正在使用k++
在foreach循环的每次迭代中递增k
的值。
foreach循环只是遍历IEnumerable
对象(或者更具体地说,在这种情况下是IEnumerable<int>
个对象),IEnumerable
对象的功能就是它只是给你集合中的每个项目。它没有“索引”的概念,所以如果你想将索引与每个项目相关联,那么你需要自己处理。
请注意,对于某些集合(例如数组和列表),您始终会按照这些结构中存在的顺序获取项目。但是,IEnumerable
和IEnumerable<T>
接口本身并不一定能保证您以任何特定顺序获取项目,或者如果您循环使用它们,您将获得相同顺序的项目第二次。迭代的顺序由底层实现决定,在这种情况下,它是一个整数数组(int[]
)。
答案 3 :(得分:0)
我认为Console.Read()会导致您出现问题,请尝试使用ReadLine()并在必要时转换为Int,并增加k:
int size = 0, k = 0;
Console.WriteLine("Enter size of array: ");
size = Convert.ToInt32(Console.ReadLine());
string[] array = new string[size];
for (int i = 0; i < size; i++)
{
Console.WriteLine("Enter at index: {0}", i);
array[i] = Console.ReadLine();
}
foreach (string s in array)
{
Console.WriteLine("Value at index: {0}", k + " = " + s);
k++;
}
Console.ReadLine();
答案 4 :(得分:0)
为什么使用Console.Read()
?它读取与输入流中每个字符对应的整数,但直到你按Enter键(它本身会发送两个整数,一个13
和一个10
)
也许您应该使用Console.ReadLine()
代替?
答案 5 :(得分:0)
这有效(经过测试):
int size = 0, k = 0;
Console.WriteLine("Enter size of array: ");
size = int.Parse(Console.ReadLine());
string[] array = new string[size];
for (int i = 0; i < size; i++)
{
Console.WriteLine("Enter at index: {0}", i);
array[i] = Console.ReadLine();
}
foreach (string s in array)
{
Console.WriteLine("Value at index: {0} = {1}", k++, s);
}
Console.Read();