C# - 嵌套数组/数据结构

本文关键字:数据结构 数组 嵌套 | 更新日期: 2023-09-27 18:37:19

最近,我一直在学习C#(ASP.NET)并从PHP转向。我想实现这样的事情:

mainArray (
   array 1 (
      'name' => 'example'
   ),
   array 2 (
      'name' => 'example2'
   )
);

我知道您可以在 C# 中使用Array但是,您必须在这样做之前指出数组的长度,这就是问题所在。

我想在类函数中循环访问数据库,该函数返回所有列的数组,即:

ID、用户名、电子邮件。

我试过:

public Array search_bustype(string match, string forthat)
{
    db = new rkdb_07022016Entities2();
    var tbl = (from c in db.tblbus_business select c).ToArray();
    List<string> List = new List<string>();
    int i = 0;
    foreach (var toCheck in tbl)
    {
        if (toCheck.BusType.ToString() == match)
        {
            if (forthat == "Name")
            {
                List.Add(toCheck.Name);
            }
            if (forthat == "Address")
            {
            }
        }
        i++;
    }
    return List.ToArray();
}

但如您所见,我只需要返回单列,因为List不是多维的(无法嵌套)。

我可以用什么来解决这个问题?我看了一些链接:

C# 数组
堆栈溢出帖子

但这些对于我的结构来说又是一个问题,因为我不知道在声明数组时我需要多少索引 - 数据库每天都在增长。

提前谢谢。

C# - 嵌套数组/数据结构

试试这样的事情。 首先,为您的业务模型定义一个类。

public class Person
{
    public string Name {get;set;}
    public string Address {get;set;}
}

然后使用泛型列表而不是字符串列表。

public Person[] search_bustype(string match, string forthat)
{
    var db = new rkdb_07022016Entities2();
    List<Person> personList = new List<Person>();
    foreach (var toCheck in db.tblbus_business.Where(b => b.BusType.ToString() == match))
    {
        var model = new Person { Name = toCheck.Name, Address = toCheck.Address };
        personList.Add(model);        
   }
   return personList.ToArray();
}

我不确定您要对该变量做什么。

您可以使用列表列表

IList<IList<string>> multiList;