यह .NET में संग्रह आरम्भिक सिंटैक्स का हिस्सा है। इस सिंटैक्स का उपयोग आप किसी भी संग्रह पर कर सकते हैं जब तक आप इसे बनाते हैं:
क्या होता है डिफॉल्ट कंस्ट्रक्टर कहा जाता है, और फिर Add(...)
इनिशियलाइज़र के प्रत्येक सदस्य के लिए कहा जाता है।
इस प्रकार, ये दोनों ब्लॉक लगभग समान हैं:
List<int> a = new List<int> { 1, 2, 3 };
तथा
List<int> temp = new List<int>();
temp.Add(1);
temp.Add(2);
temp.Add(3);
List<int> a = temp;
आप चाहें तो एक वैकल्पिक निर्माणकर्ता को बुला सकते हैं, उदाहरण के लिए List<T>
, बढ़ते समय आदि को रोकने के लिए, उदाहरण के लिए :
// Notice, calls the List constructor that takes an int arg
// for initial capacity, then Add()'s three items.
List<int> a = new List<int>(3) { 1, 2, 3, }
ध्यान दें कि Add()
विधि को एक आइटम की आवश्यकता नहीं है, उदाहरण के Add()
लिए Dictionary<TKey, TValue>
दो वस्तुओं को लेने की विधि :
var grades = new Dictionary<string, int>
{
{ "Suzy", 100 },
{ "David", 98 },
{ "Karen", 73 }
};
लगभग समान है:
var temp = new Dictionary<string, int>();
temp.Add("Suzy", 100);
temp.Add("David", 98);
temp.Add("Karen", 73);
var grades = temp;
इसलिए, इसे अपनी कक्षा में जोड़ने के लिए, आपको सभी की जरूरत है, जैसा कि उल्लेख किया गया है, लागू है IEnumerable
(फिर से, अधिमानतः IEnumerable<T>
) और एक या एक से अधिक बनाने के लिए Add()
:
public class SomeCollection<T> : IEnumerable<T>
{
// implement Add() methods appropriate for your collection
public void Add(T item)
{
// your add logic
}
// implement your enumerators for IEnumerable<T> (and IEnumerable)
public IEnumerator<T> GetEnumerator()
{
// your implementation
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
फिर आप इसे बीसीएल संग्रह की तरह ही उपयोग कर सकते हैं:
public class MyProgram
{
private SomeCollection<int> _myCollection = new SomeCollection<int> { 13, 5, 7 };
// ...
}
(अधिक जानकारी के लिए, MSDN देखें )