簡體   English   中英

C#-嵌套數組/數據結構

[英]C# - Nested Array/Data structures

最近,我進入C#(ASP.NET)並從PHP繼續前進。 我想實現以下目標:

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

我知道您可以在C#中使用Array ,但是在這樣做之前必須指出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#數組
StackOverflow發布

但是這些又對我的結構來說是個問題,因為在聲明它時我不知道數組中需要多少個索引-數據庫每天都在增長。

提前致謝。

您可以使用列表清單

IList<IList<string>> multiList;

嘗試這樣的事情。 首先,為您的業務模型定義一個類。

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();
}

我不確定您要使用for那個變量做什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM