Nhận danh sách các thuộc tính từ Danh sách các đối tượng


88

Hiện tại tôi sử dụng foreachvòng lặp để trả về một danh sách các objectthuộc tính.

 class X
 {
     List<X> Z = GetXlist();
     List<String> r = new List<String>();

     foreach (var z in Z)
     {
         r.Add(z.A);
     }

     return r;
}

Có cách nào mà tôi có thể rút ngắn điều này để không phải viết foreachvòng lặp không?


Bạn không viết vòng lặp for. Có một sự khác biệt mà bạn nên biết về lập trình
— Darren Young

Câu trả lời:


167

LINQ là câu trả lời. Bạn có thể sử dụng nó để "chiếu" từ bộ sưu tập đối tượng của mình sang bộ sưu tập khác - trong trường hợp này là tập hợp các giá trị thuộc tính đối tượng.

List<string> properties = objectList.Select(o => o.StringProperty).ToList();

12

Bạn có thể sử dụng LINQ:

List<X> Z = GetXlist();

List<String> r = Z.Select(z => z.A).ToList();

return r;

Hoặc chỉ,

return GetXlist().Select(z => z.A).ToList();

Tìm hiểu thêm về LINQ . Nó khá hữu ích.


0
List<string> properties = objectList.Select(o => o.StringProperty).ToList();

Bạn cũng có thể thực hiện theo OverLoadingphương pháp riêng tư và sử dụng phương pháp đó trong truy vấn LINQ.


4
Điều này không mang lại giá trị cho câu trả lời thành lập
— Ivan Kaloyanov
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.