Lambda Expressions এবং LINQ Query দুটি শক্তিশালী বৈশিষ্ট্য যা C# এবং LINQ-এর মাধ্যমে ডেটা পরিচালনা এবং কুয়েরি করার প্রক্রিয়াকে আরও সহজ এবং কার্যকরী করে তোলে। তবে, এগুলোর ব্যবহার এবং গঠন কিছুটা আলাদা।
Lambda Expressions হল anonymous methods বা delegate methods যা C# কোডে ছোট এবং সংক্ষিপ্ত ফাংশন লিখতে ব্যবহৃত হয়। লাম্বডা এক্সপ্রেশন সাধারণত একটি ইনলাইন মেথড হিসেবে কাজ করে এবং এর সিগনেচার খুবই সোজা। এটি কোডের রিডেবিলিটি এবং কার্যকারিতা বৃদ্ধি করতে সাহায্য করে।
(parameters) => expression
এখানে, parameters
হল ইনপুট প্যারামিটার এবং expression
হল সেই প্যারামিটারগুলির ভিত্তিতে পরিচালিত কোন এক্সপ্রেশন।
Func<int, int, int> add = (x, y) => x + y;
Console.WriteLine(add(5, 3)); // আউটপুট: 8
এখানে, (x, y) => x + y একটি লাম্বডা এক্সপ্রেশন যা দুইটি পূর্ণসংখ্যাকে যোগ করে।
LINQ Query হল Language Integrated Query-এর সংক্ষিপ্ত রূপ, যা C# এবং VB.NET-এ ডেটার উপর কুয়েরি চালাতে ব্যবহৃত হয়। LINQ ডেটাবেস, XML, ডেটা কালেকশন বা অন্য কোন ডেটা সোর্স থেকে ডেটা নিয়ে আসার জন্য কোডের মধ্যে সরাসরি কুয়েরি ব্যবহার করার সুবিধা দেয়।
LINQ Query সাধারণত SQL-like syntax ব্যবহার করে কাজ করে, এবং এটি একটি declarative পদ্ধতিতে লেখা হয়। LINQ কুয়েরি সুনির্দিষ্ট ফিল্টারিং, গ্রুপিং, সাজানো, এবং অন্যান্য অপারেশন করতে সহায়তা করে।
var customers = from customer in context.Customers
where customer.Country == "USA"
select customer;
এখানে LINQ Query ব্যবহার করে Customers টেবিল থেকে সেই গ্রাহকদের ফিল্টার করা হয়েছে যাদের Country 'USA'।
Lambda Expressions এবং LINQ Query উভয়ই ডেটা প্রসেসিং এবং কুয়েরি লেখার জন্য ব্যবহার করা হলেও তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে।
LINQ Query Syntax হল SQL-এর মতো একটি declarative syntax যা from, where, select, group by ইত্যাদি কিওয়ার্ড ব্যবহার করে ডেটা ফিল্টার, সাজানো এবং গ্রুপ করার জন্য। এটি SQL এর মতো কাজ করে এবং SQL কোডের সাথে পরিচিত যারা তাদের জন্য এটি সহজ হতে পারে।
var customers = from customer in context.Customers
where customer.City == "New York"
select customer;
এখানে, আমরা from
কিওয়ার্ড দিয়ে ডেটা সোর্সের নাম এবং তারপরে where
কিওয়ার্ড ব্যবহার করে শর্ত (যেমন: City == "New York") যোগ করেছি।
Lambda Expression সিনট্যাক্স হল এক ধরনের function-style syntax, যা LINQ এর সাথে আরও বেশি ব্যবহৃত হয়। এটি delegate বা anonymous method হিসেবে কাজ করে এবং কোডের মধ্যে inline ফাংশন ব্যবহারের সুবিধা দেয়।
var customers = context.Customers
.Where(customer => customer.City == "New York")
.ToList();
এখানে, Where মেথডের মধ্যে একটি লাম্বডা এক্সপ্রেশন (customer => customer.City == "New York")
ব্যবহৃত হয়েছে যা City এর মান New York হলে সেই গ্রাহকদের রিটার্ন করবে।
বিষয় | LINQ Query | Lambda Expression |
---|---|---|
সিনট্যাক্স | SQL-এর মতো declarative syntax | Function-style syntax |
পাঠযোগ্যতা | SQL এর মতো, কিছুটা সহজ এবং পরিষ্কার হতে পারে | Inline কোড, কিছুটা কম পরিষ্কার হতে পারে |
বৈশিষ্ট্য | কুয়েরি খুব সহজে লেখা যায়, এবং ক্লাসিকাল SQL-এর মতো | কমপ্লেক্স ফাংশনাল প্রোগ্রামিংয়ের জন্য আদর্শ |
ব্যবহার | সহজ কুয়েরি বা জটিল জোইন অপারেশনগুলোর জন্য | দ্রুত এবং নমনীয় কুয়েরি অপারেশনগুলোর জন্য |
ধরা যাক, আমাদের Customers টেবিল রয়েছে, এবং আমরা সেই গ্রাহকদের খুঁজে বের করতে চাই যারা "New York"-এ বাস করেন এবং যাদের বয়স ৩০ এর বেশি।
var result = from customer in context.Customers
where customer.City == "New York" && customer.Age > 30
select customer;
var result = context.Customers
.Where(customer => customer.City == "New York" && customer.Age > 30)
.ToList();
দুজনই একই ফলাফল দেয়, কিন্তু LINQ Query-এ আপনি from, where, select কিওয়ার্ড ব্যবহার করছেন, যেখানে Lambda Expression সরাসরি Where এবং অন্যান্য মেথডের মাধ্যমে ফিল্টারিং এবং প্রসেসিং করছে।
LINQ Query সাধারণত ব্যবহার করা হয় যখন আপনি SQL এর মতো সিনট্যাক্সে কোড লেখতে পছন্দ করেন, আর Lambda Expression ব্যবহার করা হয় যখন আপনি কোডে আরও কার্যকরী, সংক্ষিপ্ত এবং জটিল ফাংশন ব্যবহার করতে চান।
select
, join
, group by
ইত্যাদি)।Where
, Select
, OrderBy
, GroupBy
, Aggregate
এর মতো মেথডগুলোকে চেইন করে একাধিক কার্যক্রম সম্পাদন করতে চান।Lambda Expressions এবং LINQ Query উভয়ই LINQ-এর সঙ্গে ব্যবহৃত হয় এবং ডেটা প্রসেসিংয়ের জন্য শক্তিশালী সরঞ্জাম। তবে, এগুলোর ব্যবহার এবং সিনট্যাক্সে পার্থক্য রয়েছে। আপনি যেকোনো একটিকে ব্যবহার করতে পারেন আপনার প্রোজেক্টের প্রয়োজন অনুসারে, কিন্তু উভয়ই অত্যন্ত কার্যকরী এবং ডেটা প্রসেসিংকে সহজ করে তোলে।
common.read_more