Last () और LastOrDefault () दोनों एक मूल्य की अंतिम घटना को प्राप्त करेंगे। लेकिन Last() और LastOrDefault() के बीच बड़ा अंतर यह है कि Last() एक अपवाद फेंक देगा यदि आपूर्ति किए गए मानदंडों के लिए कोई परिणाम डेटा नहीं है जबकि LastOrDefault() कोई परिणाम डेटा नहीं होने पर डिफ़ॉल्ट मान (शून्य) वापस कर देगा।
अंतिम () का उपयोग करें जब हमें पता था कि अनुक्रम में कम से कम एक तत्व होगा। जब हम डेटा के बारे में सुनिश्चित न हों तो LastOrDefault() का उपयोग करें।
उदाहरण
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; namespace ConsoleApp { public class Student { public int Id { get; set; } public string Name { get; set; } } class Program { static void Main() { var studentsList = new List<Student> { new Student { Id = 1, Name = "John" }, new Student { Id = 2, Name = "Jack" }, new Student { Id = 1, Name = "Jill" } }; var lastOrDefaultStudent = studentsList.LastOrDefault(student => student.Id == 1); var lastStudent = studentsList.Last(student => student.Id == 1); Console.WriteLine($"LastOrDefault: {lastOrDefaultStudent.Id} {lastOrDefaultStudent.Name}"); Console.WriteLine($"Last: {lastStudent.Id} {lastStudent.Name}"); Console.ReadLine(); } } }
आउटपुट
उपरोक्त कोड का आउटपुट है
LastOrDefault: 1 Jill Last: 1 Jill
उदाहरण
using System; using System.Collections.Generic; using System.Linq; namespace DemoApplication { class Program { static void Main(string[] args) { try { var studentsList = new List<Student> { new Student { Id = 1, Name = "John" }, new Student { Id = 2, Name = "Jack" } }; var lastOrDefaultStudent = studentsList.LastOrDefault(student => student.Id == 3); var value = lastOrDefaultStudent == null ? "null" : ""; Console.WriteLine($"LastOrDefault: {value}"); var lastStudent = studentsList.Last(student => student.Id == 3); } catch (Exception ex) { Console.WriteLine($"Last Exception: {ex.Message}"); Console.ReadLine(); } } } public class Student { public int Id { get; set; } public string Name { get; set; } } }
आउटपुट
उपरोक्त कोड का आउटपुट है
LastOrDefault: null Last Exception: Sequence contains no matching element
यहां आईडी "3" छात्र सूची में मौजूद नहीं है। इसलिए LastOrDefault() शून्य मान लौटा रहा है जबकि Last() अपवाद फेंक रहा है।