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

C# में Dictionary से कुंजियों (Keys) की सूची प्राप्त करना


C# में Dictionary<TKey, TValue> से सभी कुंजियों (keys) को एक सूची (List<TKey>) के रूप में प्राप्त करने के लिए Keys प्रॉपर्टी का उपयोग करके कंस्ट्रक्टर या ToList() मेथड का उपयोग किया जाता है।

उदाहरण

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        // डिक्शनरी बनाएं
        var dictionary = new Dictionary
        {
            { 1, "One" },
            { 2, "Two" },
            { 3, "Three" },
            { 4, "Four" },
            { 5, "Five" },
            { 6, "Six" },
            { 7, "Seven" },
            { 8, "Eight" }
        };
        
        Console.WriteLine($"डिक्शनरी आकार: {dictionary.Count}");
        
        // विधि 1: List कंस्ट्रक्टर (सबसे सीधा)
        List keys1 = new List(dictionary.Keys);
        
        // विधि 2: LINQ ToList()
        List keys2 = dictionary.Keys.ToList();
        
        // विधि 3: मैन्युअल लूप (पुराने कोड में)
        List keys3 = new List();
        foreach (int key in dictionary.Keys)
            keys3.Add(key);
        
        Console.WriteLine("\nकुंजियों की सूची:");
        foreach (int key in keys1)
        {
            Console.WriteLine($"  {key}");
        }
        
        // सत्यापन
        Console.WriteLine($"\nसभी विधियां समान परिणाम देती हैं: {keys1.SequenceEqual(keys2) && keys2.SequenceEqual(keys3)}");
    }
}

आउटपुट

डिक्शनरी आकार: 8

कुंजियों की सूची:
  1
  2
  3
  4
  5
  6
  7
  8

सभी विधियां समान परिणाम देती हैं: True

Keys प्रॉपर्टी और KeyCollection

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        var dict = new Dictionary
        {
            { "Apple", 1 },
            { "Banana", 2 },
            { "Cherry", 3 }
        };
        
        // Keys प्रॉपर्टी KeyCollection लौटाती है (ICollection)
        var keysCollection = dict.Keys;
        
        Console.WriteLine($"प्रकार: {keysCollection.GetType().Name}"); // KeyCollection
        Console.WriteLine($"गिनती: {keysCollection.Count}");
        Console.WriteLine($"केवल पढ़ने योग्य: {keysCollection.IsReadOnly}");
        
        // KeyCollection सीधे पुनरावृति योग्य है
        Console.WriteLine("\nKeys प्रॉपर्टी से सीधे पुनरावृति:");
        foreach (string key in dict.Keys)
        {
            Console.WriteLine($"  {key} -> {dict[key]}");
        }
        
        // Contains जांच
        Console.WriteLine($"\n'Apple' कुंजी मौजूद: {dict.Keys.Contains("Apple")}");
        Console.WriteLine($"'Durian' कुंजी मौजूद: {dict.Keys.Contains("Durian")}");
    }
}

आउटपुट

प्रकार: KeyCollection
गिनती: 3
केवल पढ़ने योग्य: True

Keys प्रॉपर्टी से सीधे पुनरावृति:
  Apple -> 1
  Banana -> 2
  Cherry -> 3

'Apple' कुंजी मौजूद: True
'Durian' कुंजी मौजूद: False

व्यावहारिक उपयोग: कुंजियों को सॉर्ट करना, फ़िल्टर करना

using System;
using System.Collections.Generic;
using System.Linq;

public class Demo
{
    public static void Main()
    {
        var scores = new Dictionary
        {
            { "अमित", 85 },
            { "प्रिया", 92 },
            { "राहुल", 78 },
            { "स्नेहा", 96 },
            { "विकास", 70 }
        };
        
        // कुंजियों को सूची में बदलें और सॉर्ट करें
        var sortedNames = scores.Keys.OrderBy(k => k).ToList();
        Console.WriteLine("नाम वर्णानुक्रम में:");
        foreach (string name in sortedNames)
            Console.WriteLine($"  {name}: {scores[name]}");
        
        // उच्च स्कोर वाले छात्रों की कुंजियां
        var highScorers = scores.Keys.Where(k => scores[k] >= 90).ToList();
        Console.WriteLine("\n90+ स्कोर वाले:");
        foreach (string name in highScorers)
            Console.WriteLine($"  {name}: {scores[name]}");
        
        // कुंजियों को सरणी में बदलें
        string[] keysArray = scores.Keys.ToArray();
        Console.WriteLine($"\nकुंजियों की सरणी: [{string.Join(", ", keysArray)}]");
    }
}

आउटपुट

नाम वर्णानुक्रम में:
  अमित: 85
  प्रिया: 92
  राहुल: 78
  स्नेहा: 96
  विकास: 70

90+ स्कोर वाले:
  प्रिया: 92
  स्नेहा: 96

कुंजियों की सरणी: [अमित, प्रिया, राहुल, स्नेहा, विकास]

महत्वपूर्ण बिंदु

  • dictionary.Keys एक KeyCollection लौटाता है, जो ICollection<TKey> लागू करता है
  • new List<TKey>(dict.Keys) या dict.Keys.ToList() से सूची बनाएं
  • KeyCollection केवल-पढ़ने योग्य है - इसमें Add/Remove नहीं कर सकते
  • डिक्शनरी में परिवर्तन Keys संग्रह में प्रतिबिंबित होते हैं (लाइव व्यू)
  • क्रम अनिर्दिष्ट है (हैश टेबल क्रम) - सॉर्ट करने के लिए OrderBy उपयोग करें
  • ContainsKey() की तुलना में Keys.Contains() समान प्रदर्शन देता है
  1. - पायथन में डिक्शनरी कीज़ को सूची के रूप में प्राप्त करना

    पायथन में डिक्शनरी कीज़ को सूची में बदलने के तरीके 1. dict.keys() का उपयोग सबसे सीधा बिल्ट-इन मेथड। Adict = {1: Sun, 2: Mon, 3: Tue, 4: Wed} print(Dictionary:, Adict) print(Keys as list:, list(Adict.keys())) आउटपुट: [1, 2, 3, 4] 2. * अनपैकिंग का उपयोग डिक्शनरी को सीधे अनपैक करने पर कीज़ मिलती हैं।

  1. - पायथन डिक्शनरी से सभी मानों की सूची कैसे प्राप्त करें?

    डिक्शनरी से सभी कीज़ की सूची प्राप्त करने के लिए, आप बस dict.values() फंक्शन का उपयोग कर सकते हैं। उदाहरण my_dict = {name: TutorialsPoint, time: 15 years, location: India} value_list = list(my_dict.values()) print(value_list) आउटपुट यह आउटपुट देगा - [TutorialsPoint, 15 years, India] आप लिस्ट कॉम

  1. - पायथन डिक्शनरी से सभी कीज़ की सूची कैसे प्राप्त करें?

    डिक्शनरी से सभी कीज़ की सूची प्राप्त करने के लिए, आप बस dict.keys() फंक्शन का उपयोग कर सकते हैं। उदाहरण my_dict = {name: TutorialsPoint, time: 15 years, location: India} key_list = list(my_dict.keys()) print(key_list) आउटपुट यह आउटपुट देगा - [name, time, location] आप लिस्ट कॉम्प्रिहेंशन का उपयोग