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,Email),而 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#如何写一个多维数组的主要内容,如果未能解决你的问题,请参考以下文章