2011-04-19 46 views
5

Tôi đã sau đoạn mã vào C#Danh sách từ điển vào danh sách <Type> sử dụng LINQ

public class Client 
{ 
    public string ID { get; set; } 
    public string Name { get; set; } 
    public string Address { get; set; } 
} 




var liste = new List<Dictionary<string, string>>(); 
      var dictionary = new Dictionary<string, string>(); 
      dictionary["Id"] = "111"; 
      dictionary["Name"] = "XYZ"; 
      dictionary["Address"] = "Addd"; 
      liste.Add(dictionary); 
      var result = liste.SelectMany(x => x); 

      //Code for Converting result into List<Client> 

Bây giờ tôi muốn tạo Danh sách từ truy vấn kết quả sử dụng LINQ

+1

Vâng, tôi _was_ sẽ gửi nhưng bằng cách nào đó tôi cảm thấy Jon Skeet sẽ có một giải pháp tốt hơn. ; p –

+0

Chắc chắn nó có thể được thực hiện, nhưng nó sẽ giúp nếu bạn có thể cho chúng tôi biết lý do tại sao dữ liệu đã kết thúc như thế này. Ví dụ, tại sao bạn làm phẳng danh sách từ điển? Điều đó chỉ làm cho nó khó hơn. – Ani

+0

@Ani: Do nhầm lẫn, tôi đã dán mã đó.Điều kiện của tôi là để ẩn danh sách thành Danh sách loại –

Trả lời

13

Vâng, bạn có thể làm một cái gì đó như:

var result = liste.Select(map => new Client { ID = map["ID"], 
               Name = map["Name"], 
               Address = map["Address"] }) 
        .ToList(); 

Đó có phải là những gì bạn đang nghĩ đến không? Bạn có thể làm cho nó có mục đích chung hơn bằng cách lặp qua từ điển và thiết lập các thuộc tính với sự phản chiếu ... nhưng tất nhiên nó sẽ trở thành mã dài hơn đáng kể.

+2

Bạn đã đánh tôi đến thời điểm cần gửi để gửi! –

+1

Cảm ơn câu trả lời. –

2

cố gắng này

var q = (from dic in liste 
select new Client 
{ 
Id = dic["Id"], 
Name = dic["Name"], 
Address = dic["Address"], 

}).ToList(); 
Các vấn đề liên quan