2015-04-23 73 views
2

我有一組LINQ結果如下:C#LINQ到詞典

var dictionaryHere = db.tbl_user_pass_list 
     .Where(e => e.Usage1 == "Domain Administrator"); 

這將返回許多屬性,其中我需要AdminUsername和ADMINPASSWORD和公司。

我對這個類設置:

public class AdminUsernamePassword 
{ 
    public string AdminUsername { get; set; } 
    public string AdminPassword { get; set; } 
} 

我想產生是一本字典,其中最關鍵的是公司,而該值包含AdminUsername和ADMINPASSWORD。據我得爲這樣:

Dictionary<string, AdminUsernamePassword> dictionary = dictionaryHere.ToDictionary(o => o.Company, 

我不知道如何完成這雖然獲得在作爲AdminUsernamePassword型我的兩個其他值。任何幫助感謝!

+6

'.ToDictionary(O => o.Company,X =>新AdminUserPassword(x.UserName,X。密碼)'?我假設一個ctor使用'username'和'password'來保持它簡短 – germi

+1

@germi應該是一個答案 – Magnus

+0

@Magnus的權利,我將它添加爲答案 – germi

回答

5

您只需指定KeyValuePairValue即可。你已經有鑰匙:

dictionaryHere.ToDictionary(o => o.Company, [...]) 

你只需要創建Value

dictionaryHere.ToDictionary(o => o.Company, 
          x => new AdminUserPassword 
          { 
           AdminUserName = x.UserName, 
           AdminPassword = x.Password 
          });