How to use indexers in C# 8.0?


^ Operator − It is known as the index from the end operator.

It returns an index that is relative to the end of the sequence or collection.

It is the most compact and easiest way to find the end elements compare to earlier methods.

company.listEmployees[^2].Name = "Employee 2 Name Changed using new Syntax";

company.listEmployees[^5].Name = "Employee 5 Name Changed using new Syntax";

company.listEmployees[^8].Name = "Employee 8 Name Changed using new Syntax";

Example

public class Employee{
   public int EmployeeId { get; set; }
   public string Name { get; set; }
   public string Gender { get; set; }
}
public class Company{
   public List<Employee> listEmployees;
   public Company(){
      listEmployees = new List<Employee>();
      listEmployees.Add(new Employee
      { EmployeeId = 1, Name = "SS", Gender = "Male" });
      listEmployees.Add(new Employee
      { EmployeeId = 2, Name = "SSS", Gender = "Female" });
      listEmployees.Add(new Employee
      { EmployeeId = 3, Name = "SSSS", Gender = "Male" });
      listEmployees.Add(new Employee
      { EmployeeId = 4, Name = "EE", Gender = "Female" });
      listEmployees.Add(new Employee
      { EmployeeId = 5, Name = "EEEE", Gender = "Female" });
      listEmployees.Add(new Employee
      { EmployeeId = 6, Name = "TTT", Gender = "Male" });
      listEmployees.Add(new Employee
      { EmployeeId = 7, Name = "FFF", Gender = "Male" });
      listEmployees.Add(new Employee
      { EmployeeId = 8, Name = "GGG", Gender = "Male" });
   }
   public string this[int employeeId]{
      get{
         return listEmployees.
         FirstOrDefault(x => x.EmployeeId == employeeId).Name;
      }
      set{
         listEmployees.
         FirstOrDefault(x => x.EmployeeId == employeeId).Name = value;
      }
   }
}
class Program{
   public static void Main(){
      Company company = new Company();
      Console.WriteLine("Name of Employee with Id = 2: " + company[2]);
      Console.WriteLine("Name of Employee with Id = 5: " + company[5]);
      Console.WriteLine("Name of Employee with Id = 8: " + company[8]);
      System.Console.WriteLine();
      Console.WriteLine("Changing names of employees with Id = 2,5,8");
      company[2] = "Employee 2 Name Changed";
      company[5] = "Employee 5 Name Changed";
      company[8] = "Employee 8 Name Changed";
      System.Console.WriteLine();
      Console.WriteLine("Name of Employee with Id = 2: " + company[2]);
      Console.WriteLine("Name of Employee with Id = 5: " + company[5]);
      Console.WriteLine("Name of Employee with Id = 8: " + company[8]);
      company.listEmployees[^2].Name = "Employee 2 Name Changed using new
      Syntax";
      company.listEmployees[^5].Name = "Employee 5 Name Changed using new
      Syntax";
      company.listEmployees[^8].Name = "Employee 8 Name Changed using new
      Syntax";
      System.Console.WriteLine();
      Console.WriteLine("Name of Employee with Id = 2: " +
      company.listEmployees[^2].Name);
      Console.WriteLine("Name of Employee with Id = 5: " +
      company.listEmployees[^5].Name);
      Console.WriteLine("Name of Employee with Id = 8: " +
      company.listEmployees[^8].Name);
      Console.ReadLine();
   }
}

Output

Name of Employee with Id = 2: SSS
Name of Employee with Id = 5: EEEE
Name of Employee with Id = 8: GGG
Changing names of employees with Id = 2,5,8
Name of Employee with Id = 2: Employee 2 Name Changed
Name of Employee with Id = 5: Employee 5 Name Changed
Name of Employee with Id = 8: Employee 8 Name Changed
Name of Employee with Id = 2: Employee 2 Name Changed using new Syntax
Name of Employee with Id = 5: Employee 5 Name Changed using new Syntax
Name of Employee with Id = 8: Employee 8 Name Changed using new Syntax

Updated on: 19-Aug-2020

51 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements