Anonymous Types ব্যবহার

Microsoft Technologies - লিংক (LinQ) LINQ এ ডেটা প্রজেকশন (Data Projection in LINQ) |
197
197

Anonymous Types হল C# এর একটি বৈশিষ্ট্য যা আপনাকে একটি নতুন টাইপ তৈরি করতে দেয়, যার জন্য আপনি কোন ক্লাস বা ডাটাটাইপ পূর্বে ডিফাইন না করেও শুধুমাত্র প্রোপার্টির নাম এবং মান নির্ধারণ করতে পারেন। এই প্রকারের টাইপগুলি সাধারণত LINQ এর মধ্যে ব্যবহৃত হয়, যখন আপনি একটি কুয়েরির মাধ্যমে নির্বাচিত ডেটাকে একটি নির্দিষ্ট আউটপুট ফরম্যাটে ফেরত দিতে চান।

এগুলি মূলত read-only (পড়তে পারা) প্রোপার্টি নিয়ে গঠিত, এবং এগুলি বিশেষভাবে উপকারী যখন আপনি ডেটা ফিল্টার বা নির্বাচনের মাধ্যমে একটি নতুন অস্থায়ী অবজেক্ট তৈরি করতে চান।


Anonymous Types এর বৈশিষ্ট্য

  • ক্লাস তৈরি করার প্রয়োজন নেই: আপনি টাইপের নাম বা ক্লাস ডিফাইন না করেই নতুন প্রোপার্টি সহ অবজেক্ট তৈরি করতে পারেন।
  • পড়তে পারা প্রোপার্টি: Anonymous Types এর সব প্রোপার্টি শুধুমাত্র পড়া যায়, তা পরিবর্তন করা যায় না।
  • নাম স্বয়ংক্রিয়ভাবে নির্ধারণ হয়: আপনি যে প্রোপার্টি নাম দেন, তা স্বয়ংক্রিয়ভাবে ক্লাসের প্রোপার্টি হিসেবে নির্ধারিত হয়ে যায়।

Anonymous Types তৈরি করা

Anonymous Types তৈরি করতে আপনি new কিওয়ার্ড ব্যবহার করেন এবং প্রোপার্টি নাম ও মান নির্ধারণ করেন। এখানে একটি উদাহরণ দেওয়া হল যেখানে একটি LINQ Query ব্যবহার করা হয়েছে:

var student = new 
{
    Name = "John",
    Age = 25,
    Grade = "A"
};

Console.WriteLine($"Name: {student.Name}, Age: {student.Age}, Grade: {student.Grade}");

এখানে, student নামক একটি অ্যানোনিমাস টাইপ তৈরি করা হয়েছে যার তিনটি প্রোপার্টি রয়েছে: Name, Age, এবং Grade। আপনি এতে নতুন টাইপের নাম বা ক্লাস তৈরি করেননি, তবে new কিওয়ার্ড ব্যবহার করে ডাইনামিকভাবে এই টাইপের একটি অবজেক্ট তৈরি করেছেন।


LINQ এর মধ্যে Anonymous Types ব্যবহার

LINQ Query ব্যবহার করার সময়, যদি আপনি কোনও কুয়েরি থেকে নির্দিষ্ট কিছু ডেটা সিলেক্ট করতে চান এবং সেই ডেটাকে একটি নতুন টাইপ হিসেবে ফেরত দিতে চান, তবে আপনি Anonymous Types ব্যবহার করতে পারেন। এখানে একটি উদাহরণ দেওয়া হল:

List<Student> students = new List<Student>
{
    new Student { Name = "John", Age = 22, Grade = "A" },
    new Student { Name = "Anna", Age = 24, Grade = "B" },
    new Student { Name = "Mike", Age = 23, Grade = "A" }
};

var selectedStudents = from student in students
                       where student.Grade == "A"
                       select new
                       {
                           student.Name,
                           student.Age
                       };

foreach (var student in selectedStudents)
{
    Console.WriteLine($"Name: {student.Name}, Age: {student.Age}");
}

এখানে, LINQ Query ব্যবহার করে Grade "A" থাকা ছাত্রদের Name এবং Age নির্বাচন করা হয়েছে এবং সেগুলি একটি Anonymous Type হিসেবে ফেরত দেওয়া হয়েছে। এখানে new কিওয়ার্ড দিয়ে একটি নতুন টাইপ তৈরি করা হয়েছে যা Name এবং Age প্রোপার্টি ধারণ করে।


Anonymous Types এর সুবিধা

  • ক্লাস বা টাইপ তৈরি করার প্রয়োজন হয় না: যদি আপনাকে একবারে কিছু প্রোপার্টি নির্বাচন করতে হয়, তবে আলাদা ক্লাস বা স্ট্রাকচার তৈরির প্রয়োজন পড়ে না।
  • LINQ এর সাথে সহজ ব্যবহার: LINQ Query তে নির্বাচিত ডেটাকে সহজেই একটি আউটপুট টাইপে রূপান্তর করা যায়।
  • ডাইনামিক ফিল্টার এবং ম্যানিপুলেশন: অনেক সময় আপনি কোন স্থির টাইপ বা ক্লাসের প্রয়োজন ছাড়া ডেটার উপর অস্থায়ী পরিবর্তন বা ফিল্টার করতে পারবেন।

Anonymous Types এর সীমাবদ্ধতা

  • read-only: Anonymous Types এ সমস্ত প্রোপার্টি শুধুমাত্র পড়ার জন্য (read-only), এগুলি পরিবর্তন করা যায় না।
  • নাম ব্যবহার: আপনি যখন Anonymous Type তৈরি করেন, তখন টাইপের নাম জানেন না, শুধুমাত্র প্রোপার্টি নাম ব্যবহার করতে পারবেন।
  • নির্দিষ্ট টাইপে রূপান্তর: Anonymous Types অন্য ক্লাস বা টাইপে কনভার্ট করা যায় না, তবে তাদের উপর থেকে কাজ করার জন্য একাধিক প্রোপার্টির তথ্য থাকে।

Anonymous Types এবং Object Initializer এর মধ্যে পার্থক্য

Anonymous Types এবং Object Initializers মাঝে কিছু পার্থক্য রয়েছে:

  • Anonymous Types: এই ধরনের টাইপে একটি নতুন টাইপ তৈরি হয় এবং এটি শুধুমাত্র read-only প্রোপার্টি ধারণ করে।
  • Object Initializer: এই ধরনের টাইপে কোনো নতুন টাইপ তৈরি না হয়ে, ক্লাসের যে কোনো পাবলিক প্রোপার্টি সেট করা হয়।

সমাপ্তি

Anonymous Types ব্যবহার করা খুবই সুবিধাজনক, বিশেষত LINQ কুয়েরি এবং অন্যান্য ডেটা ম্যানিপুলেশন অপারেশনে যখন আপনি অস্থায়ীভাবে ডেটাকে একটি নির্দিষ্ট ফরম্যাটে ফেরত দিতে চান। এটি কোডকে আরও সিম্পল এবং রিডেবল করে তোলে, তবে মনে রাখতে হবে যে, এগুলি read-only এবং প্রপার্টি পরিবর্তন করার সুযোগ নেই।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion