Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में OrderedDictionary तत्वों को ऐरे इंस्टेंस में कॉपी करना

OrderedDictionary.CopyTo() मेथड ऑर्डर्ड डिक्शनरी के की-वैल्यू पेयर्स को DictionaryEntry ऐरे में कॉपी करता है। OrderedDictionary इंसर्शन क्रम बनाए रखता है, लेकिन कॉपी रिवर्स क्रम में होती है (अंतिम इंसर्टेड पहले)।

उदाहरण 1: सटीक आकार के ऐरे में कॉपी (इंडेक्स 0)

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
    public static void Main() {
        OrderedDictionary dict = new OrderedDictionary();
        dict.Add(1, "Harry");
        dict.Add(2, "Mark");
        dict.Add(3, "John");
        dict.Add(4, "Jacob");
        dict.Add(5, "Tim");

        Console.WriteLine("OrderedDictionary तत्व (इंसर्शन क्रम)...");
        foreach (DictionaryEntry entry in dict) {
            Console.WriteLine(entry.Key + " " + entry.Value);
        }

        // Count आकार का ऐरे
        DictionaryEntry[] dictArr = new DictionaryEntry[dict.Count];
        
        // इंडेक्स 0 से कॉपी करें
        dict.CopyTo(dictArr, 0);

        Console.WriteLine("\nऐरे इंस्टेंस में कॉपी (नोट: रिवर्स क्रम)...");
        for (int i = 0; i < dictArr.Length; i++) {
            Console.WriteLine("Key = " + dictArr[i].Key + ", Value = " + dictArr[i].Value);
        }
    }
}

आउटपुट

OrderedDictionary तत्व (इंसर्शन क्रम)...
1 Harry
2 Mark
3 John
4 Jacob
5 Tim

ऐरे इंस्टेंस में कॉपी (नोट: रिवर्स क्रम)...
Key = 5, Value = Tim
Key = 4, Value = Jacob
Key = 3, Value = John
Key = 2, Value = Mark
Key = 1, Value = Harry

उदाहरण 2: बड़े ऐरे में कॉपी (खाली स्लॉट्स के साथ)

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
    public static void Main() {
        OrderedDictionary dict = new OrderedDictionary();
        dict.Add(1, 10);
        dict.Add(2, 20);

        Console.WriteLine("OrderedDictionary तत्व...");
        foreach (DictionaryEntry entry in dict) {
            Console.WriteLine(entry.Key + " " + entry.Value);
        }

        // 5 आकार का ऐरे (लिस्ट से बड़ा)
        DictionaryEntry[] dictArr = new DictionaryEntry[5];
        
        // इंडेक्स 0 से कॉपी करें
        dict.CopyTo(dictArr, 0);

        Console.WriteLine("\nऐरे इंस्टेंस में कॉपी (रिवर्स क्रम + खाली स्लॉट्स)...");
        for (int i = 0; i < dictArr.Length; i++) {
            Console.WriteLine("Key = " + dictArr[i].Key + ", Value = " + dictArr[i].Value);
        }
    }
}

आउटपुट

OrderedDictionary तत्व...
1 10
2 20

ऐरे इंस्टेंस में कॉपी (रिवर्स क्रम + खाली स्लॉट्स)...
Key = 2, Value = 20
Key = 1, Value = 10
Key = , Value = 
Key = , Value = 
Key = , Value = 

महत्वपूर्ण व्यवहार: रिवर्स कॉपी क्रम

OrderedDictionary.CopyTo() तत्वों को रिवर्स इंसर्शन क्रम में कॉपी करता है (सबसे हालिया इंसर्टेड पहले)। यह आंतरिक कार्यान्वयन विवरण है और दस्तावेज़ीकृत व्यवहार है।

  • इंसर्शन क्रम: 1, 2, 3, 4, 5
  • कॉपी क्रम: 5, 4, 3, 2, 1
  • foreach इटरेशन इंसर्शन क्रम देता है।
  • CopyTo रिवर्स क्रम देता है।

मुख्य बिंदु

  • लक्ष्य ऐरे: DictionaryEntry[]।
  • इंडेक्स पैरामीटर: लक्ष्य ऐरे में प्रारंभिक स्थिति।
  • खाली स्लॉट्स: डिफ़ॉल्ट DictionaryEntry (null की/वैल्यू)।
  • OrderedDictionary इंसर्शन क्रम बनाए रखता है (कुंजी या इंडेक्स द्वारा एक्सेस)।
  • लीगेसी क्लास: नए कोड के लिए Dictionary<TKey, TValue> + अलग ऑर्डर ट्रैकिंग उपयोग करें।
  1. - C# में SortedList से निर्दिष्ट सूचकांक पर तत्व हटाएं

    C# में SortedList वर्ग की RemoveAt(int index) विधि का उपयोग करके निर्दिष्ट सूचकांक पर स्थित कुंजी-मान जोड़े को हटाया जा सकता है। चूंकि SortedList कुंजियों के आधार पर क्रमबद्ध होता है, सूचकांक क्रमबद्ध क्रम को दर्शाता है, सम्मिलन क्रम नहीं। उदाहरण 1: सूचकांक 3 पर तत्व हटाना using System; using Syste

  1. - C# में ऐरे में निर्दिष्ट शर्तों से मेल खाने वाले तत्व हैं या नहीं जांचें

    C# में एक ऐरे में निर्दिष्ट शर्तों से मेल खाने वाले तत्व हैं या नहीं, यह जांचने के लिए Array.Exists() मेथड का उपयोग किया जाता है। यह मेथड एक प्रेडिकेट डेलीगेट लेता है और बूलियन मान लौटाता है। उदाहरण 1 ele.StartsWith(E))); } } आउटपुट Products list... Electronics Accessories Clothing Toys Clothin

  1. - C# में सरणी के अंत से निर्दिष्ट संख्या में तत्व लौटाना

    सरणी के अंत से तत्व लौटाने के लिए TakeLast() विधि का उपयोग करें। उदाहरण पहले सरणी घोषित और आरंभ करें: int[] prod = { 110, 290, 340, 540, 456, 698, 765, 789 }; अब अंतिम तीन तत्व प्राप्त करें: IEnumerable<int> units = prod.AsQueryable().TakeLast(3); पूर्ण कोड using System; using System.Linq; usi