가 나는이에 대한 모든 참조를 저장하는 목록을 사용하여 (예를 들어 DisplayObject2D) Object2D을 상속하는 추상 클래스 (Object2D), 여러 클래스C#을 - <T>
있어 목록 내 지정된 형태 요소를 반복 사물.
이 목록에있는 모든 DisplayObject2D를 반복하고 싶습니다.
지금까지, 다음과 같은 코드가 작동하지만, C#을 개발 새로운 것, 나는 그렇게 할 더 좋은 연습이 아니었다면 알고 싶어 :
List<Object2D> tmp = objects.FindAll(delegate(Object2D obj)
{ return obj is DisplayObject2D; });
foreach(DisplayObject2D obj in tmp)
{
...
}
사전에 감사!
@ZedK : +1 좋은 질문 : 바로 지금 작업하고있는 것과 관련이 있습니다. foreach 루프에서 George의 답을 직접 사용할 수 있다는 것을 알고 있다고 확신하지만, 다음과 같이 언급 할 것입니다. foreach (objects.OfType의 Object2D obj()) {...} : of 물론 'tmp'에 필터링 된 객체를 보존해야하는 다른 이유가있을 수 있으므로 Type을 기준으로 필터링 한 결과를 "실행하고 잊어 버리기"를 원하지 않을 수 있습니다. –
BillW
네, 그저 방금 한 것입니다 (누락 된 "using System.Linq"문을 추가 한 후), 모든 것이 한 줄로 완료되어 완벽합니다. 감사! –