2016-03-21 9 views
-1

私はこのような配列を作成...これまでのところ、このコードを持っている:属性を使用して配列を印刷するにはどうすればよいですか?

namespace animal_array 
{ 

    class Program 
    { 

     struct animal 
     { 

      public string Name; 

      public string Color; 

      public int Weight; 

      public int Age; 
     } 

     static void Main(string[] args) 
     { 

      int[] Array = new int[5]; 
      animal cat; 
      cat.name = "cat"; 
      cat.age = 2; 
      cat.weight = 10; 
      cat.color = "black"; 

を、私は他の4匹の動物... 、その後、私はすべて出力しますループを必要とするために同じことを行います動物の情報、と私はそれがこのようなものになるだろうと思う:

public static void printarray2 (int[] A) //print array function 
{ 

    for (int i = 0; i< 5; i++) 
    { 
     Console.WriteLine ("Name: " + A[i].name); 
     Console.WriteLine("Weight: " + A[i].weight); 
     Console.WriteLine("Age: " + A[i].age); 
     Console.WriteLine("Color: " + A[i].color); 
    } 
} 

しかし、それは私が.nameのをやらせる、.color、などと私は、コードを修正する方法がわからないではないでしょう。それは拡張がその文脈に存在しないと言いますか?だから私は...

+0

'int [] 'ではなく' animal [] 'を使いたいと思う – Quantumplate

+0

このループはmainにある他のコードとは別の方法です。私はメインでこの関数を呼び出し、動物配列を参照しようとしていましたが、問題は解決しません。 – r3518

+0

これを試しましたか? 'public static void printarray2(animal [] A)'? – Quantumplate

答えて

2

は、例えば、それがAnimalではなく、intの配列を使用していますし、プロパティにケースを固定している

public class Program 
{ 

    // Animal 
    public struct Animal 
    { 
     public string Name; 
     public string Color; 
     public int Weight; 
     public int Age; 
    } 

    // Main 
    public static void Main(string[] args) 
    { 
     Animal[] animals = new Animal[5]; 

     animals[0] = new Animal { Name = "Cat", Color = "Grey", Weight = 20, Age = 7 }; 
     animals[1] = new Animal { Name = "Dog", Color = "Grey", Weight = 20, Age = 7 }; 
     animals[2] = new Animal { Name = "Horse", Color = "Grey", Weight = 20, Age = 7 }; 
     animals[3] = new Animal { Name = "Rabbit", Color = "Grey", Weight = 20, Age = 7 }; 
     animals[4] = new Animal { Name = "Mouse", Color = "Grey", Weight = 20, Age = 7 }; 

     OutputAnimals(animals); 
    } 

    // Print out animals 
    public static void OutputAnimals(Animal[] A) 
    { 

     for (int i = 0; i < A.Length; i++) 
     { 
      Console.WriteLine("Name: " + A[i].Name); 
      Console.WriteLine("Weight: " + A[i].Weight); 
      Console.WriteLine("Age: " + A[i].Age); 
      Console.WriteLine("Color: " + A[i].Color); 
     } 

    } 
} 

...これを試してみてくださいわからないんだけど.name.Nameになります。また、ループ内のハードコードされた5をA.Lengthに置き換えました。

関連する問題