簡體   English   中英

C#中的元素輸出錯誤

[英]Wrong element output in C#

我事先表示歉意,但是在這種情況下,我對C#還是陌生的(我在Unity中使用過它,但從來沒有單獨使用過)。

我正在嘗試創建一個字符串數組,並在一個循環內創建另一個帶有評級系統(int元素)的數組。 不幸的是,我的問題似乎只是一個層面。

這是代碼:

using System;

public class Test
{
  public static void Main()
  {
    string [] arr1 = new string[] {"a","b","c","d","e"};
    int a = 0;
    foreach (var element in arr1)
    {          
        int [] myRate = new int [5] {1,2,3,4,5};
        int [] rating = myRate;
        a = rating[0];
        Console.WriteLine (element +": " + (rating[a]));
    } a++;
  }
}

我的問題是輸出應該為1(對於所有元素,因為我仍在進行增量操作),但這是輸出:

a: 2
b: 2
c: 2
d: 2
e: 2

我試圖盡可能地減少代碼以查明問題(這就是為什么它很簡單),但是我仍然無法弄清楚。 當我將零更改為1時,輸出為2,依此類推。 如果我將其更改為4,則表示超出范圍。 非常感謝您的幫助,並在此先感謝您。

在循環中,何時執行此操作:

a = rating[0];

然后a變為1,因為它是int數組中的第一項。 然后將其寫入控制台:

rating[a]

...導致的結果(因為a為1):

rating[1]

...而數組中的第二項是2,這就是為什么要獲得此輸出的原因。


兩種輸出方式1:

foreach (var element in arr1)
{          
    int [] myRate = new int [5] {1,2,3,4,5};
    int [] rating = myRate;
    a = 0;
    Console.WriteLine (element +": " + (rating[a]));
} a++;

foreach (var element in arr1)
{          
    int [] myRate = new int [5] {1,2,3,4,5};
    int [] rating = myRate;
    Console.WriteLine (element +": " + (rating[0]));
} a++;

附帶說明一下,您可以考慮在循環外創建int[] ,因為每次迭代都創建相同的數組,除非您實際上打算在每次新迭代中創建具有不同值的數組。

因為“ a”包含數字“ 1”。

評級數組索引上的數字1是2。

如果要打印數字1,則應從索引0開始。即:

Console.WriteLine (element +": " + (rating[0]));

如果您希望答案為1,請輸入:

Console.WriteLine (element +": " + a);

要么

Console.WriteLine (element +": " + rating[0]);

因為a=rating[0]; 即數組的第一個元素,其值為1。

您正在使用:

Console.WriteLine (element +": " + (rating[a]));

rating[1]因為a is 1

所以rating[1]是數組的第二個元素,其值為2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM