C# LINQ لیمبڈا ایکسپریشنز

C Linq Lymb A Aykspryshnz



C# میں لیمبڈا اظہار براہ راست اظہار/مشروط بیانات کو نام کے بغیر اپنے جسم کے طور پر لیتا ہے۔ ہمیں پیرامیٹرز کی وضاحت کرنے کی ضرورت ہے اور پھر اس پر اظہارات تفویض کیے گئے ہیں۔ Language Integrated Query (LINQ) کے ساتھ کام کرتے ہوئے، آپ کو یہ ضرورت پڑ سکتی ہے کہ آپ کو ڈیٹا سورس میں موجود ڈیٹا کو تبدیل کرنے یا ایک ڈیٹا سورس کو دوسرے ڈیٹا سورس میں تبدیل کرنے کی ضرورت ہو۔ اس گائیڈ میں، ہم دیکھیں گے کہ لیمبڈا ایکسپریشن کی وضاحت کرکے ڈیٹا سورس سے ریکارڈز کو کیسے فلٹر کیا جائے اور ڈیٹا سورس سے ریکارڈز کو منتخب کریں۔

نحو:

  1. لیمبڈا اظہار: (پیرامیٹر) => اظہار
  2. لیمبڈا کا بیان: { مشروط بیان 1 بیان 2 … }

مثال 1:

'کھادوں' کی فہرست بنائیں جس میں پانچ تار ہیں۔ لیمبڈا اظہار کا استعمال کریں جو فہرست سے تمام تاروں کو واپس کرتا ہے۔

استعمال کرتے ہوئے سسٹم ;
استعمال کرتے ہوئے سسٹم۔لنق ;
استعمال کرتے ہوئے سسٹم۔کلیکشنز۔جنرک ;

کلاس LambdaExpressionExample {

جامد عوام باطل مرکزی ( )
{

// کھادوں کی فہرست بنائیں
کھادوں کی فہرست بنائیں = نئی فہرست ( ) ;
کھاد . شامل کریں۔ ( 'یوریا' ) ;
کھاد . شامل کریں۔ ( 'نائٹروجن' ) ;
کھاد . شامل کریں۔ ( 'پوٹاشیم' ) ;
کھاد . شامل کریں۔ ( 'ڈی امونیم فاسفیٹ' ) ;
کھاد . شامل کریں۔ ( 'فاسفورس' ) ;

// تمام کھادوں کو منتخب کرنے کے لیے LambdaExpression استعمال کریں۔
تھا نتیجہ = کھاد . منتخب کریں۔ ( inp1 => inp1 ) ;
ہر ایک کے لئے ( تھا میں میں نتیجہ )
{
تسلی . رائٹ لائن ( میں ) ;
}

}
}

آؤٹ پٹ:









وضاحت:



1. 'فرٹیلائزرز' کے نام سے سٹرنگ کی قسم کی فہرست بنائیں۔ اس فہرست میں پانچ تاریں شامل کریں۔

2. تمام کھادوں کو منتخب کرنے کے لیے لیمبڈا ایکسپریشن کا استعمال کریں۔ یہاں، اظہار 'منتخب' آپریٹر کے ساتھ استعمال ہوتا ہے۔ اظہار ہے۔ inp1 => inp1۔ پھر، ہم ان تاروں کو ظاہر کرنے کے لیے 'فوریچ' لوپ کا استعمال کرتے ہیں جو لیمبڈا ایکسپریشن کے ذریعے لوٹے جاتے ہیں۔





مثال 2:

ان کھادوں کو منتخب کرنے کے لیے لیمبڈا ایکسپریشن استعمال کریں جن میں 'فاسفیٹ' شامل ہو۔

استعمال کرتے ہوئے سسٹم ;
استعمال کرتے ہوئے سسٹم۔لنق ;
استعمال کرتے ہوئے سسٹم۔کلیکشنز۔جنرک ;

کلاس LambdaExpressionExample {

جامد عوام باطل مرکزی ( )
{

// کھادوں کی فہرست بنائیں
کھادوں کی فہرست بنائیں = نئی فہرست ( ) ;
کھاد . شامل کریں۔ ( 'یوریا' ) ;
کھاد . شامل کریں۔ ( 'نائٹروجن' ) ;
کھاد . شامل کریں۔ ( 'آرتھو - فاسفیٹ' ) ;
کھاد . شامل کریں۔ ( 'ڈی امونیم فاسفیٹ' ) ;
کھاد . شامل کریں۔ ( 'فاسفورس' ) ;

// کھادوں کو منتخب کرنے کے لیے LambdaExpression استعمال کریں جس میں - 'فاسفیٹ'
تھا نتیجہ = کھاد . کہاں ( inp1 => inp1 . مشتمل ( 'فاسفیٹ' ) ) ;
ہر ایک کے لئے ( تھا میں میں نتیجہ )
{
تسلی . رائٹ لائن ( میں ) ;
}

}
}

آؤٹ پٹ:



دو تار ہیں جن میں 'فاسفیٹ' شامل ہے۔

وضاحت:

1. 'فرٹیلائزرز' کے نام سے سٹرنگ کی قسم کی ایک فہرست بنائیں۔ اس فہرست میں پانچ تاریں شامل کریں۔

2. یہاں، اظہار 'Where' آپریٹر کے ساتھ استعمال ہوتا ہے۔ اظہار ہے۔ inp1 => inp1. مشتمل ہے ('فاسفیٹ')۔ پھر، ہم ان تاروں کو ظاہر کرنے کے لیے 'فوریچ' لوپ کا استعمال کرتے ہیں جو لیمبڈا ایکسپریشن کے ذریعے لوٹے جاتے ہیں۔

مثال 3:

آئیے ایک فہرست (order_quantity) رکھتے ہیں جس میں تین آرڈر ہوتے ہیں۔ ہر آرڈر میں 5 شامل کرنے کے لیے لیمبڈا ایکسپریشن کی وضاحت کریں۔

استعمال کرتے ہوئے سسٹم ;
استعمال کرتے ہوئے سسٹم۔لنق ;
استعمال کرتے ہوئے سسٹم۔کلیکشنز۔جنرک ;

کلاس LambdaExpressionExample {

جامد عوام باطل مرکزی ( )
{

// مقدار کی فہرست بنائیں
آرڈر_مقدار کی فہرست بنائیں = نئی فہرست ( ) ;
آرڈر کی مقدار . شامل کریں۔ ( 5 ) ;
آرڈر کی مقدار . شامل کریں۔ ( 7 ) ;
آرڈر کی مقدار . شامل کریں۔ ( 8 ) ;

// ہر آرڈر کے لیے LambdaExpression 5 تک استعمال کریں۔
تھا نتیجہ = آرڈر کی مقدار . منتخب کریں۔ ( inp1 => inp1 + 5 ) ;
ہر ایک کے لئے ( تھا میں میں نتیجہ )
{
تسلی . رائٹ لائن ( میں ) ;
}

}
}

آؤٹ پٹ:

[5,7,8] فہرست کو [10,12,13] میں تبدیل کر دیا گیا ہے۔

وضاحت:

1. انٹیجر قسم کی مقداروں کی فہرست بنائیں۔

2. ہم پہلے آرڈرز کو منتخب کرتے ہیں اور پھر ہر آرڈر میں 5 کا اضافہ کرتے ہیں۔ لہذا، 'منتخب' آپریٹر استعمال کیا جاتا ہے. اظہار ہے۔ inp1 => inp1 + 5۔

مثال 4:

ایونٹ کی قسم کا ایک فہرست ڈیٹا سورس بنائیں (تین صفات کے ساتھ - Event_Name، Event_Status اور Event_Budget) اور ریکارڈز کو Event_Budget کے ساتھ واپس کریں جو 5000 سے زیادہ ہے۔

استعمال کرتے ہوئے سسٹم ;
استعمال کرتے ہوئے سسٹم۔لنق ;
استعمال کرتے ہوئے سسٹم۔کلیکشنز۔جنرک ;

// 5 ایونٹس کے ساتھ - 'Event_Source' کے نام سے ایک کلاس بنائیں۔
عوام کلاس واقعہ_ذریعہ
{
عوام جامد باطل مرکزی ( )
{
// ایونٹ کی فہرست
IList واقعات = نئی فہرست ( ) {
نئی تقریب ( ) { واقعہ_نام = 'تکنیکی کیمپ' ,ایونٹ_سٹیٹس = 'منصوبہ بند' ,ایونٹ_بجٹ = 10000 } ,
نئی تقریب ( ) { واقعہ_نام = 'مارکیٹنگ کیمپ' ,ایونٹ_سٹیٹس = 'مکمل' ,ایونٹ_بجٹ = 5000 } ,
نئی تقریب ( ) { واقعہ_نام = 'دوسرے' ,ایونٹ_سٹیٹس = 'منصوبہ بند' ,ایونٹ_بجٹ = 1000 } ,
نئی تقریب ( ) { واقعہ_نام = 'سیاست' ,ایونٹ_سٹیٹس = 'منصوبہ بند' ,ایونٹ_بجٹ = 13000 } ,
نئی تقریب ( ) { واقعہ_نام = 'مالیات' ,ایونٹ_سٹیٹس = 'مکمل' ,ایونٹ_بجٹ = 20000 } ,
} ;

//ایونٹ_بجٹ 5000 سے زیادہ۔
تھا نتیجہ = تقریبات . کہاں ( inp1 => inp1 . ایونٹ_بجٹ > 5000 ) ;
ہر ایک کے لئے ( تھا میں میں نتیجہ ) {
تسلی . رائٹ لائن ( 'NAME:' + میں . واقعہ_نام + ' حالت: ' + میں . ایونٹ_سٹیٹس + 'بجٹ:' + میں . ایونٹ_بجٹ ) ;
}
}
}

عوام کلاس تقریب {
عوام تار واقعہ_نام { حاصل کریں ; سیٹ ; }
عوام تار ایونٹ_سٹیٹس { حاصل کریں ; سیٹ ; }
عوام int ایونٹ_بجٹ { حاصل کریں ; سیٹ ; }
}

آؤٹ پٹ:

'ایونٹس' کی فہرست میں 5000 سے زیادہ کے Event_Budget کے ساتھ تین ریکارڈز ہیں۔

وضاحت:

1. سب سے پہلے، ہم تین صفات کے ساتھ ایک 'ایونٹ' کلاس بناتے ہیں۔

2. پھر، ہم پانچ واقعات کی فہرست بناتے ہیں۔

3. کا استعمال کرتے ہوئے inp1 => inp1.Event_Budget > 5000 lambda اظہار، ہم 5000 سے زیادہ کے Event_Budget والے ریکارڈز کو منتخب کرتے ہیں۔

مثال 5:

پچھلے کوڈ کو استعمال کریں اور لیمبڈا ایکسپریشن کو تبدیل کریں۔ واقعات کو ایونٹ_نام کے ساتھ لوٹائیں جو 'کیمپ' کے ساتھ ختم ہوتا ہے اور ایونٹ_سٹیٹس کے ساتھ جو 'منصوبہ بند' ہے۔

//Lambda اظہار - Event_name 'Camp' کے ساتھ ختم ہوتا ہے اور Event_Status 'منصوبہ بند' ہے۔
تھا نتیجہ = تقریبات . کہاں ( inp1 => inp1 . واقعہ_نام . کے ساتھ ختم ہوتا ہے۔ ( 'کیمپ' ) && inp1 . ایونٹ_سٹیٹس == 'منصوبہ بند' ) ;
ہر ایک کے لئے ( تھا میں میں نتیجہ ) {
تسلی . رائٹ لائن ( 'NAME:' + میں . واقعہ_نام + ' حالت: ' + میں . ایونٹ_سٹیٹس + 'بجٹ:' + میں . ایونٹ_بجٹ ) ;
}

آؤٹ پٹ:

صرف ایک ریکارڈ ہے جو دونوں شرائط کو پورا کرتا ہے۔

وضاحت:

یہاں، ہم لیمبڈا اظہار میں دو شرائط بیان کرتے ہیں۔ && (اور) آپریٹر کا استعمال دو شرائط کو سچ بنانے کے لیے کیا جاتا ہے۔ پہلی شرط EndsWith() طریقہ استعمال کرتی ہے تاکہ یہ چیک کیا جا سکے کہ آیا سٹرنگ دی گئی سٹرنگ کے ساتھ ختم ہوتی ہے۔ دوسری شرط 'موازنہ' آپریٹر (==) کا استعمال کرتی ہے تاکہ یہ چیک کیا جا سکے کہ آیا دونوں قدریں برابر ہیں یا نہیں۔

نتیجہ

C# میں، لیمبڈا اظہار اظہار/مشروط بیانات کو بغیر نام کے اپنے جسم کے طور پر لیتا ہے۔ ہمیں پیرامیٹرز کی وضاحت کرنے کی ضرورت ہے۔ پھر، اظہارات اس کو تفویض کیے گئے ہیں۔ بنیادی طور پر، یہ دیئے گئے ڈیٹا سورس سے ریکارڈز کو فلٹر کرنے، عناصر کو تبدیل کرنے، اور ڈیٹا سورس/سیکونس سے عناصر کو منتخب کرنے کے لیے استعمال ہوتے ہیں۔ اس گائیڈ میں، ہم نے پانچ مختلف مثالوں پر تبادلہ خیال کیا جو لیمبڈا ایکسپریشن کا استعمال کرتے ہوئے عناصر کو منتخب، فلٹر اور تبدیل کرتی ہیں۔