लोड हो रहा है...

Lambda एक्सप्रेशन्स

C# में Lambda एक्सप्रेशन्स एक प्रकार के एनोनीमस (anonymous) फ़ंक्शन होते हैं, जो सीधे कोड में छोटे लॉजिक को परिभाषित करने की सुविधा देते हैं। ये आधुनिक C# डेवलपमेंट में महत्वपूर्ण हैं क्योंकि वे कोड की पठनीयता और पुन: प्रयोग क्षमता को बढ़ाते हैं और फंक्शनल प्रोग्रामिंग को सपोर्ट करते हैं। Lambda एक्सप्रेशन्स का उपयोग अक्सर LINQ, Delegates और Events के साथ किया जाता है, जिससे डेटा को फ़िल्टर, ट्रांसफॉर्म, सॉर्ट या एग्रीगेट करना आसान हो जाता है।
Lambda एक्सप्रेशन्स की सिंटैक्स इस प्रकार है: (Parameter) => Expression एक single-line फ़ंक्शन के लिए, या (Parameter) => { Statements; } complex लॉजिक के लिए। ये फ़ंक्शन को पैरामीटर के रूप में पास करने की सुविधा देते हैं, जिससे object-oriented architecture में flexible और reusable design बनाना संभव होता है। C# की data structures जैसे List, Dictionary और Array के साथ इनका उपयोग करके efficient algorithms implement किए जा सकते हैं।
इस ट्यूटोरियल में, पाठक सीखेंगे कि Lambda एक्सप्रेशन्स को सही ढंग से कैसे लिखा जाए, उन्हें LINQ और data structures के साथ कैसे integrate किया जाए, और performance, error handling और memory optimization जैसी best practices कैसे अपनाई जाएँ। यह ज्ञान C# प्रोजेक्ट्स में robust और maintainable applications बनाने में मदद करेगा।

मूल उदाहरण

text
TEXT Code
using System;
using System.Collections.Generic;
using System.Linq;

namespace LambdaDemo
{
class Program
{
static void Main(string\[] args)
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// केवल सम संख्या फ़िल्टर करना
List<int> evenNumbers = numbers.FindAll(n => n % 2 == 0);

Console.WriteLine("सम संख्याएँ:");
evenNumbers.ForEach(n => Console.WriteLine(n));

// प्रत्येक संख्या का वर्ग निकालना
List<int> squares = numbers.ConvertAll(n => n * n);
Console.WriteLine("संख्याओं के वर्ग:");
squares.ForEach(n => Console.WriteLine(n));
}
}

}

इस उदाहरण में दो मुख्य Lambda एक्सप्रेशन्स दिखाई दे रहे हैं। पहला numbers.FindAll(n => n % 2 == 0) प्रत्येक संख्या n की जाँच करता है और केवल उन संख्याओं को लौटाता है जो 2 से विभाज्य हैं। दूसरा numbers.ConvertAll(n => n * n) प्रत्येक संख्या का वर्ग निकालता है। ForEach में Lambda n => Console.WriteLine(n) का उपयोग परिणाम प्रदर्शित करने के लिए किया गया है।
यह कोड Lambda को delegate के रूप में पारित करने, फ़ंक्शनल प्रोग्रामिंग को object-oriented principles के साथ मिलाने, और temporary memory allocation के सुरक्षित उपयोग को प्रदर्शित करता है। अधिक complex logic के लिए { } के साथ multi-line Lambda का उपयोग किया जा सकता है। यह approach maintainable और readable कोड सुनिश्चित करती है।

व्यावहारिक उदाहरण

text
TEXT Code
using System;
using System.Collections.Generic;
using System.Linq;

namespace LambdaAdvancedDemo
{
class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Salary { get; set; }
}

class Program
{
static void Main(string[] args)
{
List<Employee> employees = new List<Employee>
{
new Employee { Id = 1, Name = "Amit", Salary = 60000 },
new Employee { Id = 2, Name = "Bhavna", Salary = 50000 },
new Employee { Id = 3, Name = "Chirag", Salary = 70000 },
new Employee { Id = 4, Name = "Divya", Salary = 55000 }
};

// उच्च वेतन वाले कर्मचारियों को फ़िल्टर करना
var highSalaryEmployees = employees.Where(e => e.Salary > 55000).ToList();
Console.WriteLine("उच्च वेतन वाले कर्मचारी:");
highSalaryEmployees.ForEach(e => Console.WriteLine($"{e.Name} - {e.Salary:C}"));

// नाम के अनुसार कर्मचारियों को क्रमबद्ध करना
var sortedEmployees = employees.OrderBy(e => e.Name).ToList();
Console.WriteLine("कर्मचारी नाम के अनुसार क्रमबद्ध:");
sortedEmployees.ForEach(e => Console.WriteLine(e.Name));

// कुल वेतन निकालना
decimal totalSalary = employees.Sum(e => e.Salary);
Console.WriteLine($"कुल वेतन: {totalSalary:C}");
}
}

}

यह advanced उदाहरण दर्शाता है कि कैसे Lambda एक्सप्रेशन्स को objects के साथ integrate किया जा सकता है। LINQ के Where, OrderBy, और Sum functions का उपयोग करके filter, sort और aggregate operations efficiently किए गए हैं। Lambda expressions जैसे e => e.Salary > 55000 high salary filtering करते हैं और e => e.Name नाम अनुसार sorting करती है।
Best practices में complex logic को छोटे Lambda blocks में विभाजित करना शामिल है। LINQ deferred execution की वजह से performance optimization आवश्यक है। Lambda expressions object-oriented principles के साथ seamless integration प्रदान करते हैं, जिससे readable और maintainable code बनता है।

C# में Lambda एक्सप्रेशन्स के लिए best practices में स्पष्ट syntax, उचित data structures और efficient algorithms का उपयोग शामिल है। Single-line Lambdas concise हों, multi-line complex logic के लिए { } का उपयोग करें। Memory leaks से बचने के लिए closures में लंबे समय तक objects न रखें। Error handling का ध्यान रखें ताकि runtime exceptions से बचा जा सके।
सामान्य गलतियाँ हैं: overly complex Lambdas, unnecessary calculations, और inefficient iteration. Debugging के लिए breakpoints और logging का उपयोग करें। Performance optimization के लिए AsEnumerable() या AsParallel() का selective उपयोग करें। Security के लिए sensitive data को Lambda में share न करें। सही उपयोग से Lambda expressions readability, reusability और efficiency बढ़ाते हैं।

📊 संदर्भ तालिका

C# Element/Concept Description Usage Example
Lambda एक्सप्रेशन Anonymous inline फ़ंक्शन (x) => x * 2
LINQ के साथ Lambda Collections को filter और transform करना numbers.Where(n => n % 2 == 0)
Delegates Functions को parameter के रूप में पास करना Action<int> print = n => Console.WriteLine(n)
ForEach Lambda Collections iterate करना numbers.ForEach(n => Console.WriteLine(n))
Aggregation Collections पर गणना करना numbers.Sum(n => n)
Sorting Elements को criteria के अनुसार sort करना employees.OrderBy(e => e.Name)

संक्षेप में, Lambda एक्सप्रेशन्स C# में functions को concise और flexible बनाने का तरीका हैं। ये algorithms को simplify करते हैं, डेटा manipulation को efficient बनाते हैं और OOP principles के साथ integrate होते हैं। Key takeaways हैं: correct syntax, LINQ integration, performance और memory optimization।
अगले चरणों में advanced LINQ queries, async Lambdas और Events/Delegates में integration सीखें। Microsoft documentation और real-world practice examples से सीखना recommended है।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

Test Your Knowledge

Test your understanding of this topic with practical questions.

3
प्रश्न
🎯
70%
पास करने के लिए
♾️
समय
🔄
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी