2016-11-19 40 views
3

我有一個表格,其中有兩列定義爲varchar(50):Column1和Column2。我想返回一個字典<string, string>,其中每行都在字典中,其中Column1是鍵,Column2是值。這是我的:從linq查詢返回字典<string,string>

public Dictionary<string, string> LoadAllTheDataFromDB() 
{ 
    using (MyDC TheDC = new MyDC()) 
    { 
     return (from c in TheTable 
       select new Dictionary<string, string>() 
       { 
        //stuck here 

       }).FirstOrDefault(); 

    } 
} 

我該如何讓字典被填充?

謝謝。

+0

首先選擇這兩列(new {c.Column1,c.Column2}),然後實現(ToArray),然後調用ToDictionary。 – Evk

回答

9

試試這個:

var dict = TheTable.Select(t => new { t.Col1, t.Col2}) 
       .ToDictionary(t => t.Col1, t => t); 

請記住,在選擇lambda中,您將執行投影並創建一些匿名對象。然後在ToDictionary中,您將選擇匿名的一個屬性作爲您的鍵,並將對象本身作爲值。

+0

這個作品,都很好。謝謝。 – frenchie

+0

請不要忘記標記你認爲正確的答案。 –

0

因爲你只需要一個第一行的價值,爲什麼不這樣做第一:

var row = TheTable.FirstOrDefault(); 

而不僅僅是構建字典,如果你得到了結果:

return row == null ? null : 
     new Dictionary<string,string>{ {row.Column1, row.Column2 } };