परिचय
System.Array क्लास कई इंटरफ़ेस इम्प्लीमेंट करती है, जिससे एरे को कलेक्शन की तरह उपयोग किया जा सकता है।
प्रमुख इंटरफ़ेस
| इंटरफ़ेस | उद्देश्य |
|---|---|
ICloneable | Clone() मेथड प्रदान करता है (शैलो कॉपी)। |
IList | इंडेक्स-आधारित एक्सेस, जोड़/हटाना (निश्चित आकार के लिए सीमित)। |
ICollection | Count, CopyTo, थ्रेड-सेफ्टी प्रॉपर्टी। |
IEnumerable | foreach पुनरावृत्ति सक्षम करता है। |
IStructuralComparable | संरचनात्मक तुलना। |
IStructuralEquatable | संरचनात्मक समानता जांच। |
उदाहरण 1: ICloneable से एरे क्लोन करना
using System;
class Program
{
static void Main()
{
string[] arr = { "one", "two", "three", "four", "five" };
string[] arrCloned = arr.Clone() as string[]; // ICloneable
Console.WriteLine("Original: " + string.Join(",", arr));
Console.WriteLine("Cloned: " + string.Join(",", arrCloned));
// शैलो कॉपी: रेफरेंस टाइप एलिमेंट साझा होते हैं
arr[0] = "changed";
Console.WriteLine("After change - Original: " + arr[0]); // changed
Console.WriteLine("After change - Cloned: " + arrCloned[0]); // changed (साझा रेफरेंस)
}
}
उदाहरण 2: कस्टम क्लास में ICloneable इम्प्लीमेंट करना
using System;
class Car : ICloneable
{
public int Width { get; set; }
public Car(int w) { Width = w; }
public object Clone()
{
return new Car(this.Width); // डीप कॉपी (वैल्यू टाइप के लिए)
}
public override string ToString() => $"Width = {Width}mm";
}
class Program
{
static void Main()
{
Car car1 = new Car(1695);
Car car2 = (Car)car1.Clone();
Console.WriteLine(car1);
Console.WriteLine(car2);
}
}
नोट
- एरे का
Clone()शैलो कॉपी लौटाता है। - रेफरेंस टाइप एलिमेंट के लिए, दोनों एरे समान ऑब्जेक्ट्स इंगित करते हैं।
IEnumerableके कारणforeachऔर LINQ काम करते हैं।