কম্পিউটার

Linq C# এ Last() এবং LastOrDefault() এর মধ্যে পার্থক্য কি?


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() একটি ব্যতিক্রম নিক্ষেপ করছে।


  1. DirectX 11 এবং DirectX 12-এর মধ্যে পার্থক্য কী?

  2. C# এ আক্ষরিক এবং ধ্রুবকের মধ্যে পার্থক্য কী?

  3. C# এ স্ট্রিং এবং স্ট্রিং এর মধ্যে পার্থক্য কি?

  4. C# এ একটি তালিকা এবং একটি অ্যারের মধ্যে পার্থক্য কী?