C# 8.0 ने दो नए ऑपरेटर्स पेश किए जो इंडेक्सिंग को अधिक शक्तिशाली और सुविधाजनक बनाते हैं:
^ ऑपरेटर (Index from End)
^ ऑपरेटर "इंडेक्स फ्रॉम एंड" ऑपरेटर के रूप में जाना जाता है। यह एक इंडेक्स लौटाता है जो अनुक्रम या संग्रह के अंत से सापेक्ष होता है।
^1= अंतिम तत्व^2= अंत से दूसरा तत्व^n= अंत से nवां तत्व
रेंज ऑपरेटर (..)
रेंज ऑपरेटर एक रेंज निर्दिष्ट करता है: start..end (start समावेशी, end असमावेशी)।
उदाहरण: ^ ऑपरेटर का उपयोग
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";
पूर्ण उदाहरण
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>();
// ... कर्मचारी जोड़ें ...
}
// कस्टम इंडेक्सर
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]);
// नए ^ ऑपरेटर का उपयोग
company.listEmployees[^2].Name = "Employee 2 Name Changed using new Syntax";
Console.WriteLine("Name of Employee with Id = 2: " + company.listEmployees[^2].Name);
}
}
आउटपुट
Name of Employee with Id = 2: SSS
Name of Employee with Id = 2: Employee 2 Name Changed using new Syntax
लाभ
- अंत से तत्वों तक पहुंचने का सबसे कॉम्पैक्ट और आसान तरीका
- कोड पठनीयता में सुधार
- ऑफ-बाय-वन त्रुटियों की संभावना कम