List<T>.Reverse() मेथड का उपयोग करके पूरे लिस्ट या निर्दिष्ट रेंज के एलिमेंट्स का ऑर्डर रिवर्स करें।
सिंटैक्स
public void Reverse();
public void Reverse(int index, int count);
उदाहरण 1: आंशिक रिवर्स (index, count)
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(String[] args) {
List<String> list = new List<String>();
list.Add("One");
list.Add("Two");
list.Add("Three");
list.Add("Four");
list.Add("Five");
list.Add("Six");
list.Add("Seven");
list.Add("Eight");
Console.WriteLine("Enumerator iterates through the list elements...");
List<string>.Enumerator demoEnum = list.GetEnumerator();
while (demoEnum.MoveNext()) {
string res = demoEnum.Current;
Console.WriteLine(res);
}
// इंडेक्स 2 से 4 एलिमेंट्स रिवर्स करें (Three, Four, Five, Six → Six, Five, Four, Three)
list.Reverse(2, 4);
Console.WriteLine("Elements in ArrayList2...Reversed 4 elements beginning from index 2");
foreach (string res in list) {
Console.WriteLine(res);
}
}
}
आउटपुट
Enumerator iterates through the list elements...
One
Two
Three
Four
Five
Six
Seven
Eight
Elements in ArrayList2...Reversed 4 elements beginning from index 2
One
Two
Six
Five
Four
Three
Seven
Eight
उदाहरण 2: पूर्ण लिस्ट रिवर्स
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(String[] args) {
List<int> list = new List<int>();
list.Add(5);
list.Add(10);
list.Add(20);
list.Add(50);
list.Add(100);
Console.WriteLine("Enumerator iterates through the list elements...");
List<int>.Enumerator demoEnum = list.GetEnumerator();
while (demoEnum.MoveNext()) {
int res = demoEnum.Current;
Console.WriteLine(res);
}
// पूरा लिस्ट रिवर्स करें
list.Reverse();
Console.WriteLine("Elements in List...Reversed");
foreach (int i in list) {
Console.WriteLine(i);
}
}
}
आउटपुट
Enumerator iterates through the list elements...
5
10
20
50
100
Elements in List...Reversed
100
50
20
10
5
महत्वपूर्ण बिंदु
- इन-प्लेस: मूल लिस्ट को संशोधित करता है, नई लिस्ट नहीं बनाता
- O(n) कॉम्प्लेक्सिटी: n/2 स्वैप्स
- आंशिक रिवर्स:
Reverse(index, count)- index से शुरू करके count एलिमेंट्स - इंडेक्स वैलिडेशन: index ≥ 0, count ≥ 0, index + count ≤ Count
- खाली लिस्ट या सिंगल एलिमेंट पर कोई प्रभाव नहीं
LINQ विकल्प (नई सीक्वेंस बनाता है)
// मूल लिस्ट अपरिवर्तित रहती है
var reversed = list.AsEnumerable().Reverse().ToList();
// या
var reversed = list.Reverse().ToList(); // List के लिए एक्सटेंशन मेथड
// रिवर्स इटरेशन (बिना संशोधन)
foreach (var item in list.AsEnumerable().Reverse()) {
Console.WriteLine(item);
}
उल्टा इटरेशन (इंडेक्स के साथ)
for (int i = list.Count - 1; i >= 0; i--) {
Console.WriteLine(list[i]);
}
उपयोग के मामले
- स्टैक-जैसा व्यवहार (LIFO प्रोसेसिंग)
- हाल के आइटम्स पहले दिखाना
- एल्गोरिदम जिनमें रिवर्स ऑर्डर प्रोसेसिंग आवश्यक हो
- पैलिंड्रोम चेकिंग