2010-10-21 27 views
60

Tôi có từ điển sau:Làm thế nào tôi có thể lọc một cuốn từ điển sử dụng LINQ và gửi lại cho một cuốn từ điển từ cùng loại

Dictionary<int,string> dic = new Dictionary<int,string>(); 
dic[1] = "A"; 
dic[2] = "B"; 

Tôi muốn lọc các mục của từ điển và gán kết quả vào biến giống nhau:

dic = dic.Where (p => p.Key == 1); 

Làm cách nào để trả lại kết quả dưới dạng từ điển cùng loại [<int,string>]?

Tôi đã thử ToDictionary, nhưng nó không hoạt động.

Xin cảm ơn trước.

+7

Trong tương lai, nếu bạn đã cố gắng cách tiếp cận rõ ràng nhưng thấy nó không hoạt động, xin vui lòng gửi mã bạn đã thử. –

Trả lời

127

ToDictionary là cách để thực hiện. Nó hiện công việc - bạn chỉ sử dụng nó không chính xác, có lẽ. Hãy thử điều này:

dic = dic.Where(p => p.Key == 1) 
     .ToDictionary(p => p.Key, p => p.Value); 

Có nói rằng, tôi giả sử bạn thực sự muốn có mộtWhere lọc khác nhau, như một hiện tại của bạn sẽ chỉ bao giờ tìm thấy một chìa khóa ...

+0

Cảm ơn bạn, Jon. Bạn nói đúng, tôi đã sử dụng nó không chính xác. – Homam

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