Tôi có một bộ sưu tập MyClass mà tôi muốn truy vấn bằng LINQ để nhận các giá trị khác biệt và lấy lại từ điển < chuỗi, chuỗi> là kết quả, nhưng tôi không thể hiểu làm thế nào tôi có thể làm điều đó bất kỳ đơn giản hơn tôi đang làm dưới đây. Điều gì sẽ một số mã sạch hơn mà tôi có thể sử dụng để có được chuỗi < từ điển, là kết quả của tôi?LINQ truy vấn để trả về một từ điển <string, string>
var desiredResults = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
var queryResults = (from MyClass mc in myClassCollection
orderby bp.SomePropToSortOn
select new KeyValuePair<string, string>(mc.KeyProp, mc.ValueProp)).Distinct();
foreach (var item in queryResults)
{
desiredResults.Add(item.Key.ToString(), item.Value.ToString());
}
Bạn muốn nó làm gì với các khóa trùng lặp? Chỉ cần lấy cái đầu tiên và bỏ qua những cái tiếp theo? Hãy lưu ý rằng từ điển không được đặt hàng, do đó, thứ tự của bạn trong truy vấn sẽ không có hiệu lực ... –
Có lẽ những gì bạn đang tìm kiếm là việc thực hiện SortedDictionary của IDictionary. Nếu không, việc phân loại trên một Từ điển là vô nghĩa. – Fede