我不能只是向数组添加值,然后我想打印值

时间:2013-02-20 22:18:24

标签: c#

/ *这是一个使用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);
        }

6 个答案:

答案 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对象的功能就是它只是给你集合中的每个项目。它没有“索引”的概念,所以如果你想将索引与每个项目相关联,那么你需要自己处理。

请注意,对于某些集合(例如数组和列表),您始终会按照这些结构中存在的顺序获取项目。但是,IEnumerableIEnumerable<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();