C# में किसी सरणी या संग्रह से सबसे छोटा तत्व प्राप्त करने के लिए LINQ का Min() मेथड सबसे सरल और पठनीय तरीका है। यह System.Linq नेमस्पेस में उपलब्ध है।
उदाहरण
using System;
using System.Linq;
class Demo
{
static void Main()
{
int[] arr = { 5, 9, 2, 7 };
// Min() मेथड से सबसे छोटा तत्व प्राप्त करें
int smallest = arr.Min();
Console.WriteLine($"सरणी: [{string.Join(", ", arr)}]");
Console.WriteLine($"सबसे छोटा तत्व: {smallest}");
}
}
आउटपुट
सरणी: [5, 9, 2, 7] सबसे छोटा तत्व: 2
विभिन्न डेटा प्रकारों के साथ Min()
using System;
using System.Linq;
public class Demo
{
public static void Main()
{
// इंटीजर सरणी
int[] numbers = { 45, 12, 78, 3, 99, 23 };
Console.WriteLine($"इंट न्यूनतम: {numbers.Min()}");
// डबल सरणी
double[] decimals = { 3.14, 2.71, 1.41, 1.73 };
Console.WriteLine($"डबल न्यूनतम: {decimals.Min()}");
// स्ट्रिंग सरणी (वर्णानुक्रम में पहला)
string[] words = { "zebra", "apple", "banana", "cherry" };
Console.WriteLine($"स्ट्रिंग न्यूनतम: {words.Min()}");
// DateTime सरणी
DateTime[] dates = {
new DateTime(2023, 12, 25),
new DateTime(2023, 1, 1),
new DateTime(2023, 7, 4)
};
Console.WriteLine($"सबसे पहली तारीख: {dates.Min():d}");
// कस्टम ऑब्जेक्ट्स के साथ (सेलेक्टर का उपयोग)
var students = new[]
{
new { Name = "अमित", Age = 22, Score = 85 },
new { Name = "प्रिया", Age = 20, Score = 92 },
new { Name = "राहुल", Age = 21, Score = 78 }
};
int minAge = students.Min(s => s.Age);
int minScore = students.Min(s => s.Score);
Console.WriteLine($"न्यूनतम उम्र: {minAge}");
Console.WriteLine($"न्यूनतम स्कोर: {minScore}");
}
}
आउटपुट
इंट न्यूनतम: 3 डबल न्यूनतम: 1.41 स्ट्रिंग न्यूनतम: apple सबसे पहली तारीख: 1/1/2023 न्यूनतम उम्र: 20 न्यूनतम स्कोर: 78
Min() के ओवरलोड्स
| ओवरलोड | उपयोग |
|---|---|
Min() | संख्यात्मक/तुलनीय प्रकारों के लिए डिफॉल्ट तुलना |
Min(selector) | प्रत्येक तत्व को प्रोजेक्ट करने के बाद न्यूनतम |
Min | जेनेरिक सेलेक्टर के साथ |
पारंपरिक लूप दृष्टिकोण (तुलना के लिए)
// LINQ Min() के बिना
int[] arr = { 5, 9, 2, 7 };
int min = arr[0];
for (int i = 1; i < arr.Length; i++)
{
if (arr[i] < min)
min = arr[i];
}
Console.WriteLine(min); // 2
महत्वपूर्ण बिंदु
Min()खाली अनुक्रम परInvalidOperationExceptionफेंकता है- खाली सरणी के लिए
DefaultIfEmpty()याMin() ?? defaultका उपयोग करें - संदर्भ प्रकारों के लिए, तुलनीय (IComparable) होना आवश्यक है
- प्रदर्शन: O(n) समय जटिलता, एकल पास
MinBy()(C# 10/.NET 6+) न्यूनतम तत्व वाला पूरा ऑब्जेक्ट लौटाता है
MinBy() उदाहरण (नए .NET संस्करणों के लिए)
// .NET 6+ / C# 10+
var youngestStudent = students.MinBy(s => s.Age);
Console.WriteLine($"सबसे युवा: {youngestStudent.Name} (उम्र: {youngestStudent.Age})");