C# 如何在C中创建类对象列表数组#

C# 如何在C中创建类对象列表数组#,c#,C#,我的课程如下 public class SeatPlans { public int Id { get; set; } public string seat_id { get; set; } public string seat_no { get; set; } public int layout_id { get; set; } } List<SeatPlans> allUser = new List<SeatPlans>(); pu

我的课程如下

public class SeatPlans
{
    public int Id { get; set; }
    public string seat_id { get; set; }
    public string seat_no { get; set; }
    public int layout_id { get; set; }
}
List<SeatPlans> allUser = new List<SeatPlans>();
public JsonResult getdata(int seat_plane_id)
{
    int lid = seat_plane_id;
    layoutsController L = new layoutsController();
    JsonResult result = L.getlayouts(lid);

    List<layouts> L1 = (List<layouts>)result.Data;
    List<List<SeatPlans>> allUser = new List<List<SeatPlans>>();

    for (int i = 0; i < L1.Count; i++)
    {
        String lid1 = L1[i].ticket_no_start;
        lid = Int32.Parse(lid1);
        allUser[i] = db.SEATPLAN.Where(d => d.layout_id == lid).ToList();
    }

    var v = new { allUser = allUser[0], allUser1 = allUser[1] };

    return Json(v, JsonRequestBehavior.AllowGet);
} 
我创建了一个类对象列表,如下所示

public class SeatPlans
{
    public int Id { get; set; }
    public string seat_id { get; set; }
    public string seat_no { get; set; }
    public int layout_id { get; set; }
}
List<SeatPlans> allUser = new List<SeatPlans>();
public JsonResult getdata(int seat_plane_id)
{
    int lid = seat_plane_id;
    layoutsController L = new layoutsController();
    JsonResult result = L.getlayouts(lid);

    List<layouts> L1 = (List<layouts>)result.Data;
    List<List<SeatPlans>> allUser = new List<List<SeatPlans>>();

    for (int i = 0; i < L1.Count; i++)
    {
        String lid1 = L1[i].ticket_no_start;
        lid = Int32.Parse(lid1);
        allUser[i] = db.SEATPLAN.Where(d => d.layout_id == lid).ToList();
    }

    var v = new { allUser = allUser[0], allUser1 = allUser[1] };

    return Json(v, JsonRequestBehavior.AllowGet);
} 
我要走了

System.ArgumentOutOfRangeException异常


您也可以将allUser[0]、allUser[1]、allUser[2]与列表一起使用。allUser[0]获取第一个SeatPlan对象,然后您可以从该对象访问公共成员

SeatPlan sp = allUser[0];
Console.Writeline(sp.Id);

将打印出第一个SeatPlan对象的Id。

如果您需要一个2d对象数组,可以这样创建:

List<List<SeatPlan>> allUser = new List<List<SeatPlan>>();

allUser.Add(db.SEATPLAN.Where(d => d.layout_id == lid).ToList());
List allUser=new List();
Add(db.SEATPLAN.Where(d=>d.layout_id==lid.ToList());
注意,您需要使用
Add
方法将新对象推送到列表中


然后可以通过
allUser[0][0]
访问各个对象,例如,获取Id将是
allUser[0][0]。Id

要拥有一系列列表,您只需声明它:

List<SeatPlans>[] allUsers = new List<SetPlans>[size];

您仍然可以使用
allUser[0]
按索引访问列表项。因此,获取Id将是
allUser[0]。Id
allUser[0]包含Id right?的值,但实际上我需要在allUser[0]、allUser[1]、allUser[2]中单独列出一个类。是的,您可以通过这种方式访问所有公共属性。我需要这样的内容---allUser[0]=db.SEATPLAN.Where(d=>d.layout_id==lid.ToList();allUser[1]=db.SEATPLAN.Where(d=>d.layout_id==lid.ToList();ToList()返回一个列表。除非您真的想要列表,否则尝试设置为allUser[0]是没有意义的。您可能需要使用GroupBy来获取列表并将其分组,这样,如果我使用allUser[0],您将拥有一个列表相反,allUser它显示错误(红色标记)@rakshi你能把你的代码发布到你试图使用它的地方吗?先生,我已经发布了我的控制器,我正在获取System.ArgumentOutOfRangeException从一点开始--allUser[0]=db.SEATPLAN.where(d=>d.layou\u id==lid)。ToList();您不能以这种方式初始化列表。构造函数会创建一个0大小的列表,这样allUser[0]就不存在了。您必须像我的回答中那样使用
Add
方法。