Csharp/CSharp Tutorial/Data Structure/Array ForEach

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

An Action triggered by Array.ForEach

<source lang="csharp">using System;

class MyClass {

 public int i;  
  
 public MyClass(int x) { 
   i = x; 
 }

}

class MainClass {

 static void show(MyClass o) { 
   Console.Write(o.i + " "); 
 } 

 public static void Main() {       
   MyClass[] nums = new MyClass[5];  
 
   nums[0] = new MyClass(5);  
   nums[1] = new MyClass(2);  
   nums[2] = new MyClass(3);  
   nums[3] = new MyClass(4);  
   nums[4] = new MyClass(1);  
    
   Console.Write("Contents of nums: ");   

   // Use action to show the values. 
   Array.ForEach(nums, MainClass.show); 

   Console.WriteLine();   

 }       

}</source>

Contents of nums: 5 2 3 4 1

Array.ForEach with a delegate

<source lang="csharp">using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Text;

public class MainClass {

   public static void Main()
   {
       int[] array = new int[] { 8, 2, 3, 5, 1, 3 };
       Array.ForEach<int>(array, delegate(int x) { Console.Write(x + " "); });
       Console.WriteLine();
   }

}</source>

8 2 3 5 1 3

foreach with Arrays

<source lang="csharp">class MainClass {

 static void Main()
 {
   int[] array = new int[]{1, 2, 3, 4, 5, 6};
   
   foreach (int item in array)
   {
       System.Console.WriteLine(item);
   }
  }

}</source>

Use an Action to change the values

<source lang="csharp">using System;

class MyClass {

 public int i;  
  
 public MyClass(int x) { 
   i = x; 
 }

}

class MainClass {

 static void neg(MyClass o) {  
   o.i = -o.i; 
 }  
 
 public static void Main() {       
   MyClass[] nums = new MyClass[5];  
 
   nums[0] = new MyClass(5);  
   nums[1] = new MyClass(2);  
   nums[2] = new MyClass(3);  
   nums[3] = new MyClass(4);  
   nums[4] = new MyClass(1);  
    
   // Use action to negate the values. 
   Array.ForEach(nums, MainClass.neg); 

 }       

}</source>