ArrayList.SetRange() मेथड एक संग्रह (ऐरे, लिस्ट, आदि) के तत्वों को ArrayList में निर्दिष्ट इंडेक्स से शुरू होने वाली रेंज में कॉपी करता है। यह मौजूदा तत्वों को ओवरराइट करता है। स्रोत संग्रह की लंबाई ArrayList की शेष क्षमता से अधिक नहीं होनी चाहिए।
उदाहरण 1: इंडेक्स 0 से रेंज रिप्लेस करना
using System;
using System.Collections;
public class Demo {
public static void Main() {
ArrayList arrList = new ArrayList();
arrList.Add("A");
arrList.Add("B");
arrList.Add("C");
arrList.Add("D");
Console.WriteLine("ArrayList तत्व (मूल)...");
for (int i = 0; i < arrList.Count; i++) {
Console.WriteLine(arrList[i]);
}
// स्रोत ऐरे
string[] source = { "Demo", "Text" };
// इंडेक्स 0 से 2 तत्वों को रिप्लेस करें
arrList.SetRange(0, source);
Console.WriteLine("\nकॉपी के बाद (SetRange इंडेक्स 0)...");
for (int i = 0; i < arrList.Count; i++) {
Console.WriteLine(arrList[i]);
}
}
}
आउटपुट
ArrayList तत्व (मूल)...
A
B
C
D
कॉपी के बाद (SetRange इंडेक्स 0)...
Demo
Text
C
D
उदाहरण 2: मध्य इंडेक्स से रेंज रिप्लेस करना
using System;
using System.Collections;
public class Demo {
public static void Main() {
ArrayList arrList = new ArrayList();
arrList.Add("One");
arrList.Add("Two");
arrList.Add("Three");
arrList.Add("Four");
arrList.Add("Five");
arrList.Add("Six");
arrList.Add("Seven");
arrList.Add("Eight");
Console.WriteLine("ArrayList तत्व (मूल)...");
for (int i = 0; i < arrList.Count; i++) {
Console.WriteLine(arrList[i]);
}
string[] source = { "Demo", "Text" };
// इंडेक्स 2 से 2 तत्वों को रिप्लेस करें
arrList.SetRange(2, source);
Console.WriteLine("\nकॉपी के बाद (SetRange इंडेक्स 2)...");
for (int i = 0; i < arrList.Count; i++) {
Console.WriteLine(arrList[i]);
}
}
}
आउटपुट
ArrayList तत्व (मूल)...
One
Two
Three
Four
Five
Six
Seven
Eight
कॉपी के बाद (SetRange इंडेक्स 2)...
One
Two
Demo
Text
Five
Six
Seven
Eight
महत्वपूर्ण नियम और बाधाएं
- ओवरराइट मोड: SetRange मौजूदा तत्वों को बदलता है, इंसर्ट नहीं करता।
- लंबाई बाधा:
index + source.Count ≤ arrList.Countहोना चाहिए। - स्रोत प्रकार: कोई भी
ICollection(ऐरे, List, ArrayList, आदि)। - प्रकार संगतता: ArrayList ऑब्जेक्ट्स स्टोर करता है, इसलिए कोई भी प्रकार स्वीकार करता है।
- अपवाद: सीमा से बाहर इंडेक्स या अधिक लंबाई पर
ArgumentException।
SetRange बनाम InsertRange
| मेथड | व्यवहार | लंबाई परिवर्तन |
|---|---|---|
SetRange(index, collection) | मौजूदा तत्वों को ओवरराइट करता है | नहीं |
InsertRange(index, collection) | नए तत्व इंसर्ट करता है, मौजूदा शिफ्ट होते हैं | हां (बढ़ती है) |
नोट
ArrayList लीगेसी क्लास है। नए कोड के लिए List<T> उपयोग करें जिसमें GetRange(), AddRange(), InsertRange() जैसे मेथड्स हैं।