2013-03-10 27 views
28

Tôi đã sau từ điển rỗngcư một cuốn từ điển sử dụng LINQ

Dictionary<Guid, string> appTypeMap = new Dictionary<Guid, string>(); 

và danh sách sau đây:

List<ApplicationType> allApplicationTypes = _applicationTypeService.GetAll() 

Loại ứng dụng được mô tả như sau:

public class ApplicationType 
{ 
    public Guid id {get; set;} 
    public String name {get; set;} 
} 

Tôi muốn điền từ điển bằng LINQ.
Tôi làm như thế nào? Cảm ơn.

Trả lời

59
appTypeMap = allApplicationTypes.ToDictionary(x => x.id, x => x.name); 

Tuy nhiên, nó sẽ tạo ra một từ điển mới, không điền vào bạn.

+6

+1 thậm chí tốt hơn. Tìm hiểu một cái gì đó mới ngày hôm nay. –

1

Hãy thử

appTypeMap = _applicationTypeService.GetAll().Select(o => new DictionaryEntry{ 
    Key = o.id, 
    Value = o.name 
}).ToList(); 

Không chắc chắn nếu bạn cần một ToList() ở cuối dòng ....

+3

Ít nhất nên để lại nhận xét cho âm tính. Đây là một câu trả lời hợp lệ và cho thấy một phương pháp thay thế. –

+1

tôi đã không downvote, nhưng trình biên dịch cung cấp cho "Không thể ngầm chuyển đổi .." lỗi với mã này. –

+0

thú vị, tôi đã tự hỏi nếu .ToList() là cần thiết. Cảm ơn bạn đã bình luận. –

Các vấn đề liên quan