मैं निम्नलिखित सरणी को एक शब्दकोश में बदलने के लिए अटक गया।

 public static string[][,] patterns = new string[][,]
 {
      new string[,] {
           { "1,2,3" },
           { "3,2,5" },
      },

      new string[,] {
           { "4,4,3" },
           { "7,1,2" },
      },
 
 };

यह वही है जो मेरे पास है:

 public Dictionary<string, string[]> patterns = new Dictionary<string, string[]>();

मैं सरणी को पूर्वनिर्धारित मानों से नहीं भर सकता।

मैं एक शब्दकोश में बदलना चाहता हूं, क्योंकि इसमें एक कुंजी है।

क्या मैं उपरोक्त सरणी को एक कुंजी और मान प्रारूप में भी बदल सकता हूं?

-2
Johnny 16 जिंदा 2022, 16:02
1
शब्दकोश में कौन सी कुंजियाँ होनी चाहिए? क्या आप दिए गए उदाहरण के लिए वांछित शब्दकोश प्रदान कर सकते हैं?
 – 
Dmitry Bychenko
16 जिंदा 2022, 16:08
मुझे ऐसा कुछ चाहिए: {"keyNameExample1", "1,2,3", "4,5,6", "आदि"} मैं ऐसा कुछ करना चाहता हूं: पैटर्न ["keyNameExample", 1 (पूर्णांक सरणी पैक) ]; या पैटर्न ["keyNameExample", 2]; (दूसरी सरणियाँ प्राप्त करने के लिए)
 – 
Johnny
16 जिंदा 2022, 16:11
{ "keyNameExample1", "1,2,3", "4,5,6", "आदि"} { "keyNameExample2", "5,7,8", "1,1,1", "आदि"} और इसे इस तरह प्राप्त करें: पैटर्न ["keyNameExample1", 2]; या पैटर्न ["keyNameExample2", 1];
 – 
Johnny
16 जिंदा 2022, 16:15

5 जवाब

आप इसे केवल एक सूची के साथ एक शब्दकोश बना सकते हैं, और मुझे लगता है कि आपकी आवश्यकताओं को शामिल किया गया है (सूचकांक पहुंच, अनुक्रमणिका तत्व के लिए पूर्णांक की परिवर्तनीय संख्या)। यहां एक उदाहरण दिया गया है (मूल्य सूची के लिए मुझे यकीन नहीं है, क्या आप वास्तव में एक स्ट्रिंग या इनट्स चाहते हैं, अगर केवल प्रकार बदलते हैं):

// define dictionary    
IDictionary<string, IList<int>> dict = new Dictionary<string, IList<int>>();
    
// assign values
dict["abc"] = new List<int> { 2, 4, 8 };
dict["def"] = new List<int> { 10, 12, 14 };

// get value    
int dictDef2 = dict["def"][1];
0
borealis-c 16 जिंदा 2022, 16:31

आखिरकार मुझे मिल गया।

public static Dictionary<string, string[]> demo = new Dictionary<string, string[]>
{
    { "abc",
        new string[]
            {
            "1", 
            "2"
            }
    },

    { "def",
        new string[]
            {
            "3",
            "4"
            }
    },
};

चेक शामिल है:

if (demo.ContainsKey("abc"))
{
}

मान प्राप्त करें:

demo["abc"][0]

किसी भी मदद के लिए धन्यवाद।

0
Johnny 16 जिंदा 2022, 16:47

यदि आप मौजूदा सरणी बदलना चाहते हैं, तो आप लिंक आज़मा सकते हैं:

using System.Linq;

...

public static string[][,] patterns = new string[][,] {...}

...

public Dictionary<string, string[]> patternsDict = patterns
  .Select((value, index) => (
     key : $"keyNameExample{index}", 
     value : value.OfType<string>().ToArray()))
  .ToDictionary(pair => pair.key, pair => pair.value);

ध्यान दें, कि हमें 2d ऐरे को ऑर्डिनल वन में बदलना है (समतल)

यदि आप केवल शब्दकोश को घोषित करना चाहते हैं और उसे भरना चाहते हैं:

public Dictionary<string, string[]> patterns = new Dictionary<string, string[]>() {
  {"keyExample1", new string[] { "1,2,3", "3,2,5" }},
  {"keyExample1", new string[] { "4,4,3", "7,1,2" }},
};
0
Dmitry Bychenko 16 जिंदा 2022, 16:49
public string[][,] patterns = new string[][,] { new string[,] { { "1,2,3" }, { "3,2,5" } }, new string[,] { { "4,4,3" }, { "7,1,2" } } };

Dictionary<string, string[,]> patternsDictionary = new Dictionary<string, string[,]>();

            for (int i = 0; i < patterns.Length; i++)
            {
                patternsDictionary.Add(i.ToString(), patterns[i]);

            }
           
            Console.WriteLine(patternsDictionary["0"][0,1]);  // Returns  2 - from { "1,2,3" }
0
Suresh Padala 16 जिंदा 2022, 16:56

इसे और भी छोटा बना सकते हैं जैसे:

public static Dictionary<string, string[]> demo = new Dictionary<string, string[]>
            {
                { "abc", new[]{"1","2"}},
                { "def", new[]{"3","4"}},
            };

और सी # 9 के साथ आप यह भी कर सकते हैं:

public static Dictionary<string, string[]> demo = new()
            {
                { "abc", new[]{"1","2"}},
                { "def", new[]{"3","4"}},
            };
0
Rom Haviv 16 जिंदा 2022, 17:52