2011-08-15 48 views
0

我有一個數據庫表有三個字段,類別,名稱和值(字符串,字符串,int)。類別和名稱是主鍵。我的意圖是現在寫這個排序表的內容返回到C#Linq數據庫表到列表

List<List<string>> 

其中每個列表與同一類別條目列表(和第一串類)的方法。我怎麼能這樣做,還是我以錯誤的方式去做?

編輯:我選擇這種數據類型的原因是,我將用數據填充HTML表格,並且只想迭代嵌套的foreach循環。

foreach(List<string ls in List<List<string>>) 
    use a foreach(string) to generate a table for ls 
+1

爲什麼你不返回一個字典<字符串,列表>其中的關鍵是類別名稱和價值觀,你將擁有所有相關的名稱?你能提供一個輸出的例子嗎? –

+0

@dnikku很棒的建議。簡直不敢相信我一開始並不這樣認爲。現在我可以迭代鍵,爲每個鍵創建一個表,並使用與該鍵相對應的列表填充它! – yoozer8

回答

1

我有一種感覺,你正在以這種錯誤的方式去做。我會創建一個簡單的類

class Item 
{ 
    public string Category {get; set;} 
    public string Name{get; set;} 
    public string Value {get; set;} 
} 

並管理List<Item>來代替。

+0

我使用了Dictionary >,非常有幫助 – yoozer8

0
List<List<string>> toListOfListOfString(Table table) 
{ 
    return table.Select(x=>new List<string>{x.Category,x.Name,x.Value.ToString()}) 
       .ToList(); 
} 
1

我認爲這將是更好地

class foo{ 
    public string val1 {get;set;} 
    public string val2 {get;set;} 
    public int val3 {get;set;} 
} 

,並表示隨後

List<foo> 

...但是這只是我的你提供的數據的解釋。

0
var table = new [] {new {Category="a", Name="name1"},new {Category="a", Name="name2"},new {Category="B", Name="name3"}}; 
    List<List<string>> x = 
    table 
     .GroupBy(
      row => row.Category, 
      (k, rows) => new List<string> (new [] {k}.Union(rows.Select(r => r.Name)))) 
     .ToList(); 

當然,在你的情況下,你會用你的表而不是我的。 ;-)