Last() এবং LastOrDefault() উভয়ই একটি মানের শেষ উপস্থিতি আনবে। কিন্তু Last() এবং LastOrDefault() এর মধ্যে প্রধান পার্থক্য হল যে সরবরাহকৃত মানদণ্ডের জন্য কোন ফলাফল ডেটা না থাকলে Last() একটি ব্যতিক্রম নিক্ষেপ করবে যেখানে LastOrDefault() ফলাফলের ডেটা না থাকলে ডিফল্ট মান (নাল) প্রদান করবে।
Last() ব্যবহার করুন যখন আমরা জানতাম ক্রমটিতে অন্তত একটি উপাদান থাকবে। যখন আমরা ডেটা সম্পর্কে নিশ্চিত নই তখন 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() একটি ব্যতিক্রম নিক্ষেপ করছে।