LINQ | Element Operator | ElementAtOrDefault
The element operators are used to return a single, or a specific element from the sequence or collection. For example, in a school when we ask, who is the principal? Then there will be only one person that will be the principal of the school. So the number of students is a collection and the principal is the only result that comes from the collection.
The LINQ Standard Query Operator supports 8 types of element operators:
- ElementAt
- ElementAtOrDefault
- First
- FirstOrDefault
- Last
- LastOrDefault
- Single
- SingleOrDefault
ElementAtOrDefault Operator
The ElementAtOrDefault operator is used to return an element from the particular index from the given collection or sequence and it provides a default value if the index is out of range. It overcomes the ArgumentOutOfRangeException problem of the ElementAt operator.
- It does not support query syntax in C# and VB.Net languages.
- It support method syntax in both C# and VB.Net languages.
- It present in both the Queryable and Enumerable class.
- It does not throw an ArgumentOutOfRangeException when the index is out of range.
- The default value of the reference types and the nullable types is null.
Example 1:
// C# program to illustrate the use // of ElementAtOrDefault operator using System; using System.Linq; class GFG { static public void Main() { // Data source string [] sequence1 = { "Dog" , "Cat" , "Goat" , "Parrot" }; int [] sequence2 = {112, 44, 55, 66, 77, 777, 56}; // Get the element at the given index // Using ElementAtOrDefault function var result1 = sequence1.ElementAtOrDefault(2); Console.WriteLine( "Element at index 2 in sequence 1: {0}" , result1); var result2 = sequence1.ElementAtOrDefault(4); Console.WriteLine( "Element at index 4 in sequence 1: {0}" , result2); var result3 = sequence1.ElementAtOrDefault(6); Console.WriteLine( "Element at index 6 in sequence 1: {0}" , result3); var result4 = sequence2.ElementAtOrDefault(2); Console.WriteLine( "Element at index 2 in sequence 2: {0}" , result4); var result5 = sequence2.ElementAtOrDefault(5); Console.WriteLine( "Element at index 5 in sequence 2: {0}" , result5); var result6 = sequence2.ElementAtOrDefault(8); Console.WriteLine( "Element at index 8 in sequence 2: {0}" , result6); } } |
Output:
Element at index 2 in sequence 1: Goat Element at index 4 in sequence 1: Element at index 6 in sequence 1: Element at index 2 in sequence 2: 55 Element at index 5 in sequence 2: 777 Element at index 8 in sequence 2: 0
Example 2:
// C# program to find the // ID of the employee using System; using System.Linq; using System.Collections.Generic; // Employee details public class Employee { public int emp_id { get ; set ; } public string emp_name { get ; set ; } public string emp_gender { get ; set ; } public string emp_hire_date { get ; set ; } public int emp_salary { get ; set ; } } class GFG { // Main method static public void Main() { List<Employee> emp = new List<Employee>() { new Employee() {emp_id = 209, emp_name = "Anjita" , emp_gender = "Female" , emp_hire_date = "12/3/2017" , emp_salary = 20000}, new Employee() {emp_id = 210, emp_name = "Soniya" , emp_gender = "Female" , emp_hire_date = "22/4/2018" , emp_salary = 30000}, new Employee() {emp_id = 211, emp_name = "Rohit" , emp_gender = "Male" , emp_hire_date = "3/5/2016" , emp_salary = 40000}, new Employee() {emp_id = 212, emp_name = "Supriya" , emp_gender = "Female" , emp_hire_date = "4/8/2017" , emp_salary = 40000}, new Employee() {emp_id = 213, emp_name = "Anil" , emp_gender = "Male" , emp_hire_date = "12/1/2016" , emp_salary = 40000}, new Employee() {emp_id = 214, emp_name = "Anju" , emp_gender = "Female" , emp_hire_date = "17/6/2015" , emp_salary = 50000}, }; // Query to find the ID of // the employee at index 3 // Using ElementAtOrDefault method var res = emp.Select(e => e.emp_id).ElementAtOrDefault(3); Console.WriteLine( "Employee ID: {0}" , res); } } |
Output:
Employee ID: 212
Please Login to comment...