【问题标题】:How can i assign a key of a array on the time of assigning a value in C#.net如何在 C#.net 中分配值时分配数组的键
【发布时间】:2014-08-20 16:36:51
【问题描述】:

我是 asp.net 的新手,我想将动态表单中的数据插入数据库中。为了识别字段,我还将字段的标签保存在数据库中。

为此,我想使用一个多维数组。问题是我想在分配值时声明数组的键,就像我们在 php 中所做的那样:

myarray['key_label'] = 'key_value';

我不确定如何在 C#.net 中执行此操作。为此,我搜索并找到了字典,因此我使用了以下代码,但在这种情况下,我可以一次查看任何一个键或值:

 var dictionary = new Dictionary<string, object>();
 dictionary.Add("username", rpu);
 dictionary.Add("sec_username", rcu);
 dictionary.Add("co_type", ct);

以下请指导我

  • 我怎样才能像上面提到的那样为数组赋值?

  • 我找到了一种同时显示键和值的方法,如下所述,但我是否可以像我们为数组那样制作多维字典?

    Dictionary<int, string> plants = new Dictionary<int, string>() {    
    {1,"Speckled Alder"},    
    {2,"Apple of Sodom"},    
    {3,"Hairy Bittercress"},    
    {4,"Pennsylvania Blackberry"},    
    {5,"Apple of Sodom"},    
    {6,"Water Birch"},    
    {7,"Meadow Cabbage"},    
    {8,"Water Birch"}    
    };
    
    Response.Write("<b>dictionary elements........</b><br />");
    
    //loop dictionary all elements   
    foreach (KeyValuePair<int, string> pair in plants)
    {
        Response.Write(pair.Key + "....." + pair.Value + "<br />");
    }
    
    //find dictionary duplicate values.  
    var duplicateValues = plants.GroupBy(x => x.Value).Where(x => x.Count() > 1);
    
    Response.Write("<br /><b>dictionary duplicate values..........</b><br />");
    
    //loop dictionary duplicate values only            
    foreach (var item in duplicateValues)
    {
        Response.Write(item.Key + "<br />");
    }   
    

    }

【问题讨论】:

  • 首先,C# 中的“数组”并不意味着它在 PHP 中的作用。我怀疑您实际上并不想要 C# 中的数组。接下来,如果您对名称进行硬编码,是否有任何理由不想只创建具有相关属性的类型?
  • @JonSkeet 不,实际上我不想硬编码我提到的名称只是为了举例,实际上我只想使用一些可以像多维数组一样的东西,所以我可以获取因为我有嵌套表格,请指导我可以用字典吗??
  • 您是如何生成表单的?可以发一下代码吗?
  • 多维是什么意思?你需要5个属性吗?姓名、年龄、大小、身份证等?

标签: c# asp.net


【解决方案1】:
   Dictionary<string,object> dic = new Dictionary<string,object>(){
            {"key1", "value1"},
            {"key2", 100 },
            {"key3", "value3"},            
        };

对于多维度:

   Dictionary<string,Dictionary<string,object>> dic = new Dictionary<string,Dictionary<string,object>>(){
            {"key1", new Dictionary<string,object>() { 
                        {"sub-key1", "value1" },
                        {"sub-key1-2", "value1-2" } 
            },
            {"key2",  new Dictionary<string,object>() {
                        {"sub-key2", "value2" }
            },
            {"key3",  new Dictionary<string,object>() {
                      {"sub-key3", "value3" } 
            }            
        };

dic["key"] 的每个值本身就是一个字典,因此您可以访问以下值:

dic["key1"]["sub-key1"];

【讨论】:

  • 感谢@Askhan 脱帽致敬!让我试试,我会回复你的。
【解决方案2】:

我怎样才能像上面提到的那样分配数组的值?

是的,您可以像访问 PHP 中的数组一样访问 C# 中的字典条目。类似myDictionary["keyOne"] = varOne;

我找到了一种同时显示键和值的方法,如下所述 但有可能我可以制作多维字典吗 我们为数组做什么?

是的,就像在 PHP 中创建数组数组一样,您将在 C# 中创建字典字典:

Dictionary<string,Dictionary<string,object>> multiDict = new Dictionary<string,Dictionary<string,object>>();
multiDict["dictionary1"]["keyOne"] = varOne;

【讨论】:

    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 2013-01-27
    • 2022-11-20
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2017-09-28
    相关资源
    最近更新 更多