Csharp/CSharp Tutorial/Data Structure/Array object

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Arrays of Objects

<source lang="csharp">using System; class Employee {

   public Employee(string name, float billingRate)
   {
       this.name = name;
       this.billingRate = billingRate;
   }
   
   public float CalculateCharge(float hours)
   {
       return(hours * billingRate);
   }
   
   public string TypeName()
   {
       return("Employee");
   }
   
   private string name;
   protected float billingRate;

} class Manager: Employee {

   public Manager(string name, float billingRate) :
   base(name, billingRate)
   {
   }
   
   public new float CalculateCharge(float hours)
   {
       if (hours < 1.0F)
       hours = 1.0F;        // minimum charge.
       return(hours * billingRate);
   }
   
   public new string TypeName()
   {
       return("Civil Employee");
   }

} class MainClass {

   public static void Main()
   {
       // create an array of Employees
       Employee[]    earray = new Employee[2];
       earray[0] = new Employee("A", 15.50F);
       earray[1] = new Manager("B", 40F);
       
       Console.WriteLine("{0} charge = {1}",
       earray[0].TypeName(),
       earray[0].CalculateCharge(2F));
       Console.WriteLine("{0} charge = {1}",
       earray[1].TypeName(),
       earray[1].CalculateCharge(0.75F));
   }

}</source>

Employee charge = 31
Employee charge = 30

A two dimensional array of objects

<source lang="csharp">using System; public class Employee {

 public string name;
 public int no;
 public Employee(string name,int no)
 {
   this.name = name;
   this.no = no;
 }

}

class MainClass {

 public static void Main()
 {
   Employee[,,] empArray = new Employee[10, 5, 3];
   empArray[1, 3, 2] = new Employee("S", 3);
   empArray[4, 1, 2] = new Employee("A", 9);
   Console.WriteLine("empArray.Rank (number of dimensions) = " + empArray.Rank);
   Console.WriteLine("empArray.Length (number of elements) = " + empArray.Length);
   for (int x = 0; x < empArray.GetLength(0); x++)
   {
     for (int y = 0; y < empArray.GetLength(1); y++)
     {
       for (int z = 0; z < empArray.GetLength(2); z++)
       {
         if (empArray[x, y, z] != null)
         {
           Console.WriteLine("empArray[" + x + ", " + y + ", " + z +"].name = " + empArray[x, y, z].name);
           Console.WriteLine("empArray[" + x + ", " + y + ", " + z +"].no = " + empArray[x, y, z].no);
         }
       }
     }
   }
 }

}</source>

empArray.Rank (number of dimensions) = 3
empArray.Length (number of elements) = 150
empArray[1, 3, 2].name = S
empArray[1, 3, 2].no = 3
empArray[4, 1, 2].name = A
empArray[4, 1, 2].no = 9

string arrays

<source lang="csharp">using System; class MainClass {

 public static void Main()
 {
  
   string[] stringArray = new string[2];
   Console.WriteLine("stringArray[0] = " + stringArray[0]);
   stringArray[0] = "Hello";
   stringArray[1] = "World";
   foreach (string myString in stringArray)
   {
     Console.WriteLine("myString = " + myString);
   }
 }

}</source>

stringArray[0] =
myString = Hello
myString = World

Use object to create a generic array.

<source lang="csharp">using System;

class MainClass {

 public static void Main() {   
   object[] ga = new object[10]; 
 
   // store ints 
   for(int i=0; i < 3; i++) 
     ga[i] = i; 
 
   // store doubles 
   for(int i=3; i < 6; i++) 
     ga[i] = (double) i / 2;  


   // store two strings, a bool, and a char 
   ga[6] = "String"; 
   ga[7] = true; 
   ga[8] = "X"; 
   ga[9] = "asdf"; 

   for(int i = 0; i < ga.Length; i++) 
     Console.WriteLine("ga[" + i + "]: " + ga[i] + " "); 

 }  

}</source>

ga[0]: 0
ga[1]: 1
ga[2]: 2
ga[3]: 1.5
ga[4]: 2
ga[5]: 2.5
ga[6]: String
ga[7]: True
ga[8]: X
ga[9]: asdf

Use the Sort() method to sort the elements in a char array

<source lang="csharp">using System; class MainClass {

 public static void Main()
 {
   char[] charArray = {"w", "e", "l", "c", "o", "m", "e"};
   Array.Sort(charArray);  // sort the elements
   Console.WriteLine("Sorted charArray:");
   for (int i = 0; i < charArray.Length; i++)
   {
     Console.WriteLine("charArray[" + i + "] = " +
       charArray[i]);
   }
 }

}</source>

Sorted charArray:
charArray[0] = c
charArray[1] = e
charArray[2] = e
charArray[3] = l
charArray[4] = m
charArray[5] = o
charArray[6] = w