Como ya sabemos sobre el Rango y los Índices . Los usamos varias veces en nuestros programas, proporcionan una sintaxis corta para representar o acceder a un solo elemento o un rango de elementos de la secuencia o colecciones dadas. En este artículo, aprenderemos qué se agregó recientemente en el rango y los índices en C# 8.0. En C# 8.0, se agregan las siguientes cosas nuevas en el rango y los índices:
1. Dos nuevos tipos :
- System.Range : representa un subrango de la secuencia o colección dada.
- System.Index : representa un índice en la secuencia o colección dada.
2. Dos nuevos operadores :
- ^ Operador: Se le conoce como índice por el operador final. Devuelve un índice relativo al final de la secuencia o colección. Es la forma más compacta y fácil de encontrar los elementos finales en comparación con los métodos anteriores.
// Old Method var lastval = myarr[myarr.Length-1] // New Method var lastval = myarr[^1]
Ejemplo:
// C# program to illustrate the use
// of the index from end operator(^)
using
System;
namespace
example {
class
GFG {
// Main Method
static
void
Main(
string
[] args)
{
// Creating and initializing an array
int
[] myarr =
new
int
[] {34, 56, 77, 88, 90, 45};
// Simple getting the index value
Console.WriteLine(
"Values of the specified indexes:"
);
Console.WriteLine(myarr[0]);
Console.WriteLine(myarr[1]);
Console.WriteLine(myarr[2]);
Console.WriteLine(myarr[3]);
Console.WriteLine(myarr[4]);
Console.WriteLine(myarr[5]);
// Now we use index from end(^)
// operator with the given index
// This will return the end value
// which is related to the specified
// index
Console.WriteLine(
"The end values of the specified indexes:"
);
Console.WriteLine(myarr[^1]);
Console.WriteLine(myarr[^2]);
Console.WriteLine(myarr[^3]);
Console.WriteLine(myarr[^4]);
Console.WriteLine(myarr[^5]);
Console.WriteLine(myarr[^6]);
}
}
}
Producción:
Values of the specified indexes: 34 56 77 88 90 45 The end values of the specified indexes: 45 90 88 77 56 34
Explicación: En el ejemplo anterior, tenemos una array de tipo int denominada myarr . Aquí, primero simplemente obtenemos los valores del índice especificado que es:
34, 56, 77, 88, 90, 45 Index : Value [0] : 34 [1] : 56 [2] : 77 [3] : 88 [4] : 90 [5] : 45
Ahora encontramos el último valor del índice especificado con la ayuda del operador ^ que es:
Index : Value [^1] : 45 [^2] : 90 [^3] : 88 [^4] : 77 [^5] : 56 [^6] : 34
Puntos importantes:
- El funcionamiento de este operador es similar a myarr[arr.Length].
- No está permitido usar myarr[^0] si usa esto, entonces esto generará un error porque el índice final comienza desde ^1, no desde ^0 como se muestra en el siguiente ejemplo:
Ejemplo:
// C# program to illustrate the use
// of the index from end operator(^)
using
System;
namespace
example {
class
GFG {
// Main Method
static
void
Main(
string
[] args)
{
// Creating and initializing an array
int
[] myarr =
new
int
[] {34, 56,
77, 88, 90, 45};
// Simply getting the index value
Console.WriteLine(
"Values of the specified index:"
);
Console.WriteLine(myarr[0]);
// Now we use index from end(^)
// operator with the given index
// This will return the end value
// which is related to the specified
// index
Console.WriteLine(
"The end values of the specified index:"
);
Console.WriteLine(myarr[^0]);
}
}
}
Producción:
Valores del índice especificado:
34
Los valores finales del índice especificado:
excepción no controlada. System.IndexOutOfRangeException: el índice estaba fuera de los límites de la array.
en example.Program.Main(String[] args) en /Users/anki/Projects/example/example/Program.cs:line 22 - Puede usar el índice como una variable y colocar esta variable entre corchetes []. Como se muestra en el siguiente ejemplo:
Ejemplo:
// C# program to illustrate how
// to declare a index as a variable
using
System;
namespace
example {
class
GFG {
// Main Method
static
void
Main(
string
[] args)
{
// Creating and initializing an array
int
[] number =
new
int
[] {1, 2, 3, 4,
5, 6, 7, 8, 9};
// Declare an index
// as a variable
Index i = ^6;
var
val = number[i];
// Displaying number
Console.WriteLine(
"Number: "
+ val);
}
}
}
Producción:
Number: 4
- .. Operador: Se le conoce como operador de rango. Y especifica el inicio y el final como sus operandos del rango dado. Es la forma más compacta y fácil de encontrar el rango de los elementos de la secuencia o colección especificada en comparación con los métodos anteriores.
// Old Method var arr = myemp.GetRange(1, 5); // New Method var arr = myemp[2..3]
Ejemplo:
// C# program to illustrate the
// use of the range operator(..)
using
System;
namespace
example {
class
GFG {
// Main Method
static
void
Main(
string
[] args)
{
// Creating and initializing an array
string
[] myemp =
new
string
[] {
"Anu"
,
"Priya"
,
"Rohit"
,
"Amit"
,
"Shreya"
,
"Rinu"
,
"Sumit"
,
"Zoya"
};
Console.Write(
"Name of the employees in project A: "
);
var
P_A = myemp[0..3];
foreach
(
var
emp1
in
P_A)
Console.Write($
" [{emp1}]"
);
Console.Write(
"\nName of the employees in project B: "
);
var
P_B = myemp[3..5];
foreach
(
var
emp2
in
P_B)
Console.Write($
" [{emp2}]"
);
Console.Write(
"\nName of the employees in project C: "
);
var
P_C = myemp[1..^2];
foreach
(
var
emp3
in
P_C)
Console.Write($
" [{emp3}]"
);
Console.Write(
"\nName of the employees in project D: "
);
var
P_D = myemp[..];
foreach
(
var
emp4
in
P_D)
Console.Write($
" [{emp4}]"
);
Console.Write(
"\nName of the employees in project E: "
);
var
P_E = myemp[..2];
foreach
(
var
emp5
in
P_E)
Console.Write($
" [{emp5}]"
);
Console.Write(
"\nName of the employees in project F: "
);
var
P_F = myemp[6..];
foreach
(
var
emp6
in
P_F)
Console.Write($
" [{emp6}]"
);
Console.Write(
"\nName of the employees in project G: "
);
var
P_G = myemp[^3.. ^ 1];
foreach
(
var
emp7
in
P_G)
Console.Write($
" [{emp7}]"
);
}
}
}
Producción:
Name of the employees in project A: [Anu] [Priya] [Rohit] Name of the employees in project B: [Amit] [Shreya] Name of the employees in project C: [Priya] [Rohit] [Amit] [Shreya] [Rinu] Name of the employees in project D: [Anu] [Priya] [Rohit] [Amit] [Shreya] [Rinu] [Sumit] [Zoya] Name of the employees in project E: [Anu] [Priya] Name of the employees in project F: [Sumit] [Zoya] Name of the employees in project G: [Rinu] [Sumit]
Puntos importantes:
- Cuando crea un rango usando el operador de rango, entonces no agregará el último elemento. Por ejemplo, tenemos una array {1, 2, 3, 4, 5, 6}, ahora queremos imprimir range[1..3], luego imprimirá 2, 3. No imprime 2, 3, 4.
- En Range, si un rango contiene un índice inicial y final como Range[start, end], estos tipos de rangos se conocen como rango acotado.
- En Rango, si un rango contiene solo un índice inicial y final o no contiene índices iniciales y finales como Rango[inicio..], o Rango[..fin], o Rango[..], entonces tales tipos de rangos son conocido como el rango ilimitado.
- Se le permite usar el rango como una variable y este lugar variable entre corchetes []. Como se muestra en el siguiente ejemplo:
Ejemplo:
// C# program to illustrate how to
// declare a range as a variable
using
System;
namespace
example {
class
GFG {
// Main Method
static
void
Main(
string
[] args)
{
// Creating and initializing an array
int
[] number =
new
int
[] {1, 2, 3, 4,
5, 6, 7, 8, 9};
Console.Write(
"Number: "
);
// Declaring a range as a variable
Range num = 1..3;
int
[] val = number[num];
// Displaying number
foreach
(
var
n
in
val)
Console.Write($
" [{n}]"
);
}
}
}
Producción:
Number: [2] [3]
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA