C# как написать многомерный массив - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь следовать этому руководству о том, как привязать массив к представлению сетки: Привязка массивов к GridView в ASP. Net

Это достаточно просто следовать, но моя структура массива выглядит иначе, чем в примере. Я хотел бы узнать, как написать массив, который выглядит так:

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

Любая помощь была бы замечательной.

Спасибо, Erasmo

Ответы [ 2 ]

2 голосов
/ 17 июня 2020

Первое, что нужно сказать, это не многомерный массив. Это массив 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 -casing ( N ame, E mail), тогда как JavaScript и ваш JSON используют Camel-casing ( n ame, e почта).

Некоторые сериализаторы JSON (например, для. NET Core WebAPI) автоматически выполняют это преобразование, а другие - нет, так что вам, возможно, придется использовать несоответствующие соглашения на одном или другом языке.

0 голосов
/ 17 июня 2020

Я использовал код из упомянутого вами руководства и изменил его, чтобы он соответствовал вашим требованиям:

<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(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...