# Collections और LINQ — .NET Core: वेब API बनाएँ, टेस्ट करें और शिप करें

Source: https://www.geekswithgeeks.com/hi/dotnet-core/cs-collections-linq

> LINQ से collections को filter, transform और aggregate करें।

## Collection पर query

LINQ (`System.Linq`) किसी भी collection में `Where`, `Select` और `OrderBy` जैसे methods जोड़ता है। ये pipeline की तरह पढ़े जाते हैं और आम तौर पर मूल list नहीं बदलते।

## एक छोटी pipeline

सम संख्याएँ रखें, उनका वर्ग करें, फिर print करें। `ToList()` या loop के बिना query चलती ही नहीं।

```csharp
var nums = new List<int> { 1, 2, 3, 4, 5, 6 };
var result = nums.Where(n => n % 2 == 0)
                 .Select(n => n * n)
                 .ToList();
Console.WriteLine(string.Join(", ", result));
```

Output:

```
4, 16, 36
```

## Deferred execution की हैरानी

LINQ query हर बार enumerate करने पर दोबारा चलती है। अगर वह database छूती है या भारी है, तो एक बार `ToList()` करके list दोबारा उपयोग करें।

**Quiz:** कौन-सा LINQ method शर्त पूरी करने वाले items ही रखता है?

- [ ] Select
- [ ] OrderBy
- [ ] GroupBy
- [x] Where

*Answer:* Where. `Where` filter करता है; `Select` हर item को कुछ और बना देता है।
