2009-06-15 3 views
10

특정 클래스의 요소 목록이 있습니다. 이 클래스는 필드를 포함합니다.C# 클래스 목록에서 필드 목록 추출

class Foo {public int i;} 
List<Foo> list; 

목록에있는 모든 항목의 입력란을 새 목록으로 추출하고 싶습니다.

분명히 여러 가지 방법이 있지만 멋진 해결책은 아직 없습니다. 나는 linq가 도움이 될거라 생각했지만 정확히 어떻게 확신 할 수 없었습니다.

답변

18

그냥 :

List<int> result = list.Select(e => e.i).ToList(); 

또는

후자가 더 효율적입니다
List<int> result = list.ConvertAll(e => e.i); 

(그것은 시작하는 최종 크기를 알고 있기 때문에),하지만 임의보다는리스트와 배열에 대해 작동합니다 순서.

+0

오늘 아침 두 번 째주기가 벌어졌습니다 .-p –

+0

감사합니다. Jon, Marc. :) – mafu

+0

LINQ가이 시나리오에서 최종 크기가'list.Count'가 될만큼 충분히 지능적이지 않다는 좋은 이유가 있습니까? –