📘 C# Blog Series – Blog 36 **“C# LINQ — Collections को Filter, Sort, Group करने का सबसे Powerful तरीका

📘 C# Blog Series – Blog 36

**“C# LINQ — Collections को Filter, Sort, Group करने का सबसे Powerful तरीका





(Real-Life Example: GPS Devices को Battery, Status, Last-Update से Filter करना)”**

LINQ (Language Integrated Query) C# का superpower है।
इससे आप lists, arrays, dictionaries, database data—सबको
query style में process कर सकते हो।

क्यों useful है?

✔ Short code
✔ Fast
✔ Readable
✔ Zero loops
✔ SQL जैसा experience
✔ Perfect for GPS + API development

आज हम LINQ को real-life GPS server के examples के साथ सीखेंगे।


🟦 1. LINQ क्या है? (Simple Definition)

LINQ =
Collection को query करने का modern तरीके से लिखने का system

Instead of:

foreach(...) { if(...) { if(...) { list.Add(...); } } }

You write:

var result = list.Where(x => x.Battery < 20);

Short + Clean.


🟢 2. Basic LINQ Syntax

list.Where(x => x.Speed > 50); list.Select(x => x.IMEI); list.OrderBy(x => x.Battery); list.GroupBy(x => x.Status);

3. Real GPS Model Example

class GPSDevice { public string IMEI { get; set; } public int Battery { get; set; } public string Status { get; set; } // Online / Offline public DateTime LastUpdated { get; set; } }

List:

List<GPSDevice> devices = GetDevices();

🌟 4. Filter — Low Battery Devices (Top Use Case)

var lowBattery = devices .Where(d => d.Battery < 20) .ToList();

अब आपके पास वह list है जो जल्दी alert भेजनी है।


5. Filter — Offline Devices (Most common)

var offline = devices .Where(d => d.Status == "Offline") .ToList();

6. Time-Based Filter — Last Updated 5 Min Ago

var outdated = devices .Where(d => DateTime.Now - d.LastUpdated > TimeSpan.FromMinutes(5)) .ToList();

GPS server में यह सबसे ज़रूरी health check है।


🟠 7. LINQ OrderBy — Sort Devices by Battery

var sorted = devices .OrderBy(d => d.Battery) .ToList();

Low battery list generate करना आसान।


🔵 8. OrderByDescending — Highest Speed First

var fastest = devices .OrderByDescending(d => d.LastUpdated) .ToList();

🟣 9. Select — Only IMEI List

var imeis = devices .Select(d => d.IMEI) .ToList();

अब backend → frontend भेजने में lightweight data।


🔥 10. Select — Lightweight DTO

var dto = devices.Select(d => new { d.IMEI, d.Battery, d.Status });

API responses में यही pattern use होता है।


11. GroupBy — Status के आधार पर grouping

var grouped = devices .GroupBy(d => d.Status);

Usage:

foreach (var group in grouped) { Console.WriteLine($"Status = {group.Key}, Count = {group.Count()}"); }

Result:

Online = 45 Offline = 12

Perfect for dashboard stats.


🔥 12. Max/Min — Real-Time Stats

Highest battery:

var maxBattery = devices.Max(d => d.Battery);

Lowest battery:

var minBattery = devices.Min(d => d.Battery);

🧠 13. FirstOrDefault — Find Specific IMEI

var dev = devices.FirstOrDefault(d => d.IMEI == "861128068064267");

📌 14. Any — Check if Any Offline Device?

bool anyOffline = devices.Any(d => d.Status == "Offline");

🎯 15. Count — कितने devices Online?

int onlineCount = devices.Count(d => d.Status == "Online");

16. Complex Query — Multi Condition (Very Useful)

Low battery + Offline:

var list = devices .Where(d => d.Battery < 25 && d.Status == "Offline") .ToList();

🔥 17. LINQ + OrderBy + Take — Top 10 Least Updated Devices

var list = devices .OrderBy(d => d.LastUpdated) .Take(10) .ToList();

Perfect for server health monitoring.


🧪 18. LINQ Chaining (Professional Coding)

var risky = devices .Where(d => d.Battery < 30) .OrderBy(d => d.Battery) .Select(d => new { d.IMEI, d.Battery }) .ToList();

4 line का logic → 1 chain में complete।


🔚 Conclusion

C# LINQ आपके system को बनाता है:

✔ Super clean
✔ Fast
✔ SQL-like
✔ Zero loops
✔ Perfect for GPS data
✔ Super easy filtering
✔ Real-time dashboards

Real-time GPS system में 90% data manipulation LINQ से ही होता है।

Post a Comment

0 Comments

Translate

Close Menu