El uso de foreach traversal en C #

El uso de foreach traversal en C # El
bucle foreach se usa para enumerar todos los elementos de la colección. La expresión en la instrucción foreach consta de dos elementos separados por la palabra clave in. El elemento a la derecha de in es el nombre de la colección, y el elemento a la izquierda de in es el nombre de la variable, que se utiliza para almacenar cada elemento de la colección.

El proceso de ejecución del bucle es el siguiente: cada vez que se repite, se toma un nuevo valor de elemento del conjunto. Colóquelo en una variable de solo lectura. Si toda la expresión entre paréntesis devuelve verdadero, se puede ejecutar la instrucción en el bloque foreach. Una vez que se ha accedido a todos los elementos de la colección, y el valor de toda la expresión es falso, el flujo de control se transfiere a
la instrucción de ejecución después del bloque foreach .

La instrucción foreach se usa a menudo con una matriz. El siguiente ejemplo leerá el valor de la matriz a través de la instrucción foreach y lo mostrará.

Los atributos de la matriz: la capacidad de la matriz Array.Length

Con este atributo, podemos obtener el valor de capacidad de almacenamiento permitida del objeto de matriz, es decir, la longitud de la matriz y el número de elementos. Esto es más fácil de entender. La matriz tiene otros atributos, como la dimensión de la matriz. El uso del atributo es relativamente simple. Aprenda uno, los otros formatos son básicamente los mismos, no daremos ejemplos aquí.

Cuando la matriz tiene más dimensiones y capacidad, C # proporciona una instrucción foreach para leer todos los elementos de una colección / matriz. A esta función la llamamos transversal. La gramática se escribe de la siguiente manera:

Atraviesa la matriz: foreach (escribe objName en colección / matriz)

Esta declaración verificará los valores de las variables almacenadas en la matriz uno por uno, y los eliminará uno por uno. El tipo es el tipo de datos del objeto de matriz que desea leer que se almacenará en la variable objName, y objName define un tipo de tipo El nombre de la variable representa cada elemento obtenido de la colección y el arreglo (colección / Array), y colección / Array es el objeto de arreglo al que se accede. De esta manera, simplemente escriba un foreach para atravesar todas las matrices de dimensiones excepto la matriz dentada.

Nota : El tipo de tipo de datos de objName debe ser igual o mayor que el tipo de colección / objeto Array.

A continuación, damos un ejemplo del uso de foreach y for para atravesar la matriz de reglas, lo que implica el método de obtener la dimensión de una matriz, y compara las ventajas de foreach en un recorrido único de la matriz de reglas.

int[,,] a = new int[2, 2, 2] {
    
     {
    
    {
    
     1, 2 }, {
    
     3,4}},{
    
    {
    
     5, 6 }, {
    
     7,8}} };// 定义一个2行2列2纵深的3维数组a
for (int i = 0; i < a.GetLength (0) ;i++ )   //用Array.GetLength(n)得到数组[0,1,,,n]上的维数的元素数,0代表行,1列,n代表此数组是n+1维
{
    
    
    for (int j = 0; j < a.GetLength(1); j++)
    {
    
    
        for (int z = 0; z < a.GetLength(2);z++ )//2代表得到纵深上的元素数,如果数组有n维就得写n个for循环
        {
    
    
            Console.WriteLine(a[i,j,z]);
        }
    }
}

Use foreach loop para atravesar una matriz a la vez

int[,,] a = new int[2, 2, 2] {
    
     {
    
    {
    
     1, 2 }, {
    
     3,4}},{
    
    {
    
     5, 6 }, {
    
     7,8}} };//定义一个2行2列2纵深的3维数组a
foreach(int i in a)
{
    
    
    Console .WriteLine (i);
}

Los resultados de la ejecución de estos dos códigos son los mismos. Hay un elemento por línea, un total de 8 líneas, y los elementos son 1 2 3 4 5 6 7 8

Hagamos otro ejemplo a continuación, que es un ejemplo de acceso a elementos de matriz usando bucles for y foreach. Primero, solicite al usuario que ingrese el número de estudiantes y luego use el número de estudiantes como el número de elementos en los nombres de matriz para almacenar los nombres de los estudiantes. El bucle for generará el mensaje "ingrese el nombre del estudiante" a partir del bit 0 de acuerdo con el índice i de la matriz, y almacenará el nombre del estudiante ingresado por el usuario en la matriz de nombres de acuerdo con su índice en la matriz, nombres [i], el número máximo de bucles for El valor (es decir, el valor máximo del índice) se obtiene a través de la propiedad array. Length, dijimos que la relación entre la capacidad y el índice es index = Array.Length-1, esta pregunta es el valor máximo de i

Debe tenerse en cuenta que con foreach, solo puede obtener los elementos en la matriz uno por uno, y no puede usar esta declaración para cambiar los elementos almacenados en la matriz.
Inserte la descripción de la imagen aquí

using System;
class Program
{
    
    
    static void Main()
    {
    
    
        int count;
        Console.WriteLine("输入要登记的学生数");
        count = int.Parse(Console.ReadLine());
        string[]names = new string[count];
        for (int i = 0; i < names.Length; i++)
        {
    
    
            Console.WriteLine("请输入第{0}个学生的姓名", i + 1);
            names[i] = Console.ReadLine();
        }
        Console.WriteLine("已登记的学生如下");
        foreach (string name in names)
        {
    
    
            Console.WriteLine("{0}", name);
        }
        Console.ReadKey();
    }
}

Supongo que te gusta

Origin blog.csdn.net/weixin_43244265/article/details/106268458
Recomendado
Clasificación