C# LINQ Query Operators

Introduction LINQ Query Operators

LINQ API data sources के साथ अलग अलग operations जैसे की filtering, sorting आदि perform करने के लिए कुछ standard query operators provide करती है। ये query operators असल में System.Linq.Enumerable और System.Linq.Queryable classes में define किये गए extension methods होते है।

LINQ query define करते समय इन्हें operator के रूप में प्रयोग किया जाता है लेकिन compile time में ये extension methods में convert कर दिए जाते है।

इन operators को इनकी functionalities के आधार पर categories में divide किया गया है। LINQ API में available different standard query operators के बारे में आगे बताया जा रहा है।

Filtering Operators

ऐसे operators जो data को filter करने के लिए प्रयोग किये जाते है filtering operators कहलाते है। LINQ API निचे दिए जा रहे filtering operators provide करती है।

  • where – यह operator data को condition के आधार पर filter करने के लिए प्रयोग किया जाता है।
  • OfType – यह operator data को type के आधार पर filter करने के लिए प्रयोग किया जाता है।

Sorting Operators

ऐसे operators जिनका प्रयोग data को sort (क्रम में व्यवस्थित करना) करने के लिए किया जाता है sorting operators कहलाते है। LINQ API में available sorting operators के बारे में निचे बताया जा रहा है।

  • OrderBy – यह operator data को ascending order में sort करने के लिए प्रयोग किया जाता है।
  • OrderByDescending – यह operator data को descending order में sort करने के लिए प्रयोग किया जाता है।
  • ThenBy – यह operator OrderBy operator के बाद data पर ascending order में secondary sorting perform करने के लिए प्रयोग किया जाता है।
  • ThenByDescending – यह operator OrderBy operator के बाद data पर descending order में secondary sorting perform करने के लिए प्रयोग किया जाता है।
  • Reverse – यह operator data को reverse order में लाने के लिए प्रयोग किया जाता है।

Grouping Operators

ऐसे operators जो data को group करने के लिए प्रयोग किये जाते है grouping operators कहलाते है। LINQ API में available grouping operators के बारे में निचे बताया जा रहा है।

  1. GroupBy – यह operator items को group में organize करने और IGrouping type को IEnumerable collection के रूप में return करने के लिए प्रयोग किया जाता है।
  2. ToLookUp – यह operator grouping operation perform करने के लिए प्रयोग किया जाता है जो key pairs return करता है।

Join Operators

अलग अलग data sources से एक साथ data access करने के लिए join operators का प्रयोग किया जाता है। LINQ API में available join operators के बारे में निचे बताया जा रहा है।

  1. Join – यह operator दो sources को key के आधार पर join करके result प्राप्त करने के लिए प्रयोग किया जाता है।
  2. GroupJoin – यह operator दो sources को join करके elements का group create करने के लिए प्रयोग किया जाता है।

Projection Operators

ऐसे operators जो condition के आधार पर value select करके project करने के लिए उपयोग किये जाते है projection operators कहलाते है। LINQ API में available projection operators के बारे में निचे बताया जा रहा है।

  1. Select – यह operator condition के आधार पर data sources में से items select करके project करने के लिए प्रयोग किया जाता है।
  2. SelectMany – यह operator condition के आधार पर data sources में से items select करके उन्हें एक single sequence के रूप में project करने के लिए प्रयोग किया जाता है।

Aggregation Operators

Aggregation operators data पर aggregation perform करने के लिए प्रयोग किये जाते है। LINQ API में available aggregation operators के बारे में निचे बताया जा रहा है।

  1. Aggregate – यह operator किसी collection की values का sum return करने के लिए प्रयोग किया जाता है।
  2. Average – यह operator किसी collection की values का औसत return करने के लिए प्रयोग किया जाता है।
  3. Count – यह operator किसी condition के आधार पर elements को count करने के लिए प्रयोग किया जाता है।
  4. LonCount – यह operator किसी बड़े collection में condition के आधार पर elements को count करने के लिए प्रयोग किया जाता है।
  5. Max – यह operator collection में से maximum value select करने के लिए प्रयोग किया जाता है।
  6. Min – यह operator किसी collection में से minimum value select करने के लिए प्रयोग किया जाता है।
  7. Sum – यह operator किसी collection में values का sum return करने के लिए प्रयोग किया जाता है।

Quantifier Operators

Quantifier operators boolean (true or false) value return करते है। यदि data source के elements किसी condition को satisfy करते है तो true value return की जाती है नहीं तो false value return होती है। LINQ API में available quantifier operators के बारे में निचे बताया जा रहा है।

  1. All – यह operator true return करता है यदि सभी elements किसी condition को satisfy करते है।
  2. Any – यह operator true return करता है यदि कोई भी element किसी condition को satisfy करता है।
  3. Contains – यह operator true return करता है यदि किसी element में कोई specific sequence available होती है।

Element Operators

Element operators position (index) के आधार पर elements को return करते है। LINQ API में available element operators के बारे में निचे बताया जा रहा है।

  1. ElementAt – यह operator किसी specific index के element को return करने के लिए प्रयोग किया जाता है।
  2. ElementAtOrDefault – यह operator किसी specific index के element को return करने के लिए प्रयोग किया जाता है। यदि index out of range हो तो यह operator default value return करता है।
  3. First – यह operator किसी collection में से first element को या किसी condition को fulfil करने वाले first element को return करने के लिए प्रयोग किया जाता है।
  4. FirstOrDefault – यह operator किसी collection में से first element को या किसी condition को fulfil करने वाले first element को return करने के लिए प्रयोग किया जाता है। यदि first element available नहीं होता है तो यह operator default value return करता है।
  5. Last – यह operator किसी collection में से last element या किसी condition को fulfil करने वाले last element को return करने के लिए प्रयोग किया जाता है।
  6. LastOrDefault – यह operator Last operator की तरह ही होता है लेकिन यदि last element नहीं मिलता है तो यह operator एक default value return करता है।
  7. Single – यह operator collection में से अकेला element return करने के लिए प्रयोग किया जाता है।
  8. SingleOrDefault – यह operator Single operator की तरह ही होता है लेकिन यदि कोई अकेला element नहीं मिलता है तो यह operator default value return करता है।

Set Operators

वे operators जो set operations perform करने के लिए प्रयोग किये जाते है set operators कहलाते है। LINQ API में available set operators निचे दिए जा रहे है।

  1. Distinct – यह operator collection में से duplicate values को remove करके unique values return करता है।
  2. Except – यह operator दो collection की values को compare करता है और उन values को return करता है जो दूसरे set में नहीं है।
  3. Intersect – यह operator दो collection में से identical (समान) values को return करता है।
  4. Union – यह operator दो collections के elements को combine करके एक नया collection form करता है जिसके सभी elements unique होते है।

Partitioning Operators

Input sequence को दो sections में divide करके उनको return करने के लिए partitioning operators का प्रयोग किया जाता है। LINQ API में available partitioning operators के बारे में निचे दिया जा रहा है।

  1. Skip – यह operator किसी sequence में specified number of elements को छोड़कर बाकि के elements को return करने के लिए प्रयोग किया जाता है।
  2. SkipWhile – यह operator Skip operator की तरह होता है लेकिन कितने elements छोड़ने है यह boolean condition द्वारा निर्धारित किया जाता है।
  3. Take – यह operator specified number of elements को return करता है और बाकि के elements को छोड़ देता है।
  4. TakeWhile – यह operator Take operator की तरह ही होता है लेकिन कितने number of elements return करने है यह boolean condition द्वारा निर्धारित किया जाता है।

Concatenation Operators

दो collections या sequences के बीच concatenation perform करने के लिए concatenation operators का प्रयोग किया जाता है। ये operators duplicate values को remove नहीं करते है। LINQ API में available concatenation operators के बारे में निचे बताया जा रहा है।

  • Concat – दो collections या sequences को combine करके एक नया collection या sequence form करने के लिए इस operator का प्रयोग किया जाता है।

Equality Operators

दो sequences को compare करके check करने के लिए की वे समान है या नहीं equality operators प्रयोग किये जाते है। LINQ API में available equality operators के बारे में निचे दिया जा रहा है।

  • SequenceEqual – यदि दो sequences एक दूसरे के समान होती है तो यह operator true value return करता है।

Generation Operators

Values की नयी sequence create करने के लिए generation operator का प्रयोग किया जाता है। LINQ API में available generation operators के बारे में निचे दिया जा रहा है।

  1. DefaultIfEmpty – जब यह operator किसी empty sequence पर apply किया जाता है तो उस sequence में यह operator default element generate करता है।
  2. Empty – यह operator values की empty sequence return करता है।
  3. Range – यह operator एक numbers या integers का collection generate करने के लिए प्रयोग किया जाता है।
  4. Repeat – यह operator specific length की repeated values वाली sequence generate करने के लिए प्रयोग किया जाता है।

Conversion Operators

Objects का type change करने के लिए conversion operators का प्रयोग किया जाता है। LINQ API में available conversion operators के बारे में निचे दिया जा रहा है।

  1. AsEnumerable – यह operator type किये गए input को IEnumerable के रूप में return करता है।
  2. AsQueryable – यह operator एक IEnumerable को एक IQueryable में convert करने के लिए प्रयोग किया जाता है।
  3. Cast – किसी collection के elements को specified type में cast करने के लिए यह operator प्रयोग किया जाता है।
  4. ToArray – यह operator किसी collection को array में convert करने के लिए प्रयोग किया जाता है।
  5. ToDictionary – यह operator किसी collection को Dictionary में convert करने के लिए प्रयोग किया जाता है।
  6. ToList – यह operator किसी collection को List में convert करने के लिए प्रयोग किया जाता है।