C#如何写一个多维数组

Posted

技术标签:

【中文标题】C#如何写一个多维数组【英文标题】:C# how to write a multidimensional array 【发布时间】:2020-10-07 17:16:52 【问题描述】:

我正在尝试按照本教程了解如何将数组绑定到网格视图: Binding Arrays to GridView in ASP.Net

这很容易理解,但我的数组结构看起来与示例中的不同。我想知道如何编写一个如下所示的数组:


  "users": [
    
      "name": "aldo",
      "email": "aldo@email.com"
    ,
    
      "name": "matias",
      "email": "matias@email.com"
    
  ]

任何帮助都会很棒。

谢谢你, 伊拉斯莫

【问题讨论】:

您在寻找类结构吗?如何显示它?你能展示一下你到目前为止所做的尝试吗? 【参考方案1】:

首先要说的是,这不是一个多维数组。它是User 对象的数组。在 C# 中,您可以像这样实现它。

public class User

     public string Name get; set;
     public string Email get; set;


List<User> users = new List<User>

    new User  Name = "aldo", Email ="aldo@email.com",       
    new User  Name = "matias", Email ="matias@email.com"

这将生成您在序列化时显示的 JSON。

需要注意的一点是,C# 使用 Pascal 大小写(Name,Ema​​il),而 javascript 和您的 JSON 使用 Camel 大小写(n 姓名,电子邮件邮件)。

一些 JSON 序列化程序(例如用于 .NET Core WebAPI 的序列化程序)会自动进行这种转换,但另一些则不会,因此您可能必须在一种或另一种语言中使用不适当的约定。

【讨论】:

【参考方案2】:

我使用了您提到的教程中的代码并对其进行了修改以满足您的要求:

<asp:GridView ID="GridMultiD" runat="server"
    AutoGenerateColumns = "false" Font-Names = "Arial"
    Font-Size = "11pt" AlternatingRowStyle-BackColor = "#C2D69B" 
    HeaderStyle-BackColor = "green" AllowPaging ="true"  
    PageSize = "10" Caption = "Multi-Dimensional Array" >
   <Columns>
    <asp:BoundField ItemStyle-Width = "150px"
     DataField = "Name" HeaderText = "Name" />
    <asp:BoundField ItemStyle-Width = "150px"
     DataField = "Email" HeaderText = "Email" />
   </Columns>
</asp:GridView>  
//Multi-Dimensional Array
string[,] arrMultiD = 
                     "aldo", "aldo@email.com" ,
                     "matias", "matias@email.com"
                 ;
DataTable dt = new DataTable();
dt.Columns.Add("Name", Type.GetType("System.String"));
dt.Columns.Add("Email", Type.GetType("System.String"));

for (int i = 0; i < 2; i++)

    dt.Rows.Add();
    dt.Rows[dt.Rows.Count - 1]["Name"] = arrMultiD[i, 0];
    dt.Rows[dt.Rows.Count - 1]["Email"] = arrMultiD[i, 1];


GridMultiD.DataSource = dt;
GridMultiD.DataBind(); 

【讨论】:

谢谢你的例子。我正在努力实施它,我不是很有经验,所以我需要比你更长的时间来理解和理解我需要做什么。我会在完成后尽快更新这个问题,或者如果我有问题。

以上是关于C#如何写一个多维数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在C#中获取多维数组的行/列的长度?

如何在 C# 中按升序对多维数组进行排序? [复制]

C#多维数组,ArrayList,还是哈希表?

C# 多维数组行

C# 中的多维关联数组

多维数组和 C# 中的数组数组有啥区别?