난 어딘가에 여기에 어쨌든 내가 foreach 루프에서 특정 유형으로 반환 된 항목을 제한하는 방법을 보았다, 내가 올바르게 기억한다면, IEnumerable의 LINQ 확장과 유형 검사를위한 lambda . 나는 그것을 다시 찾을 수 없다.형식 제한 LINQ 확장명을 사용하여 foreach에
2
A
답변
3
다음과 같이의 경우 확장 메서드를 호출하여이 작업을 수행 할 수
:
foreach(var x in theCollection.Where(i => i.GetType() == typeof(DesiredType))
{
// Do something to x
}
를하지만이는 .NET 프레임 워크에 내장되어 너무 유용하고 크리스 것입니다 위에 지적하고있다. IEnumerable에는 OfType이라는 확장 메서드가 있으며 here에 설명되어 있습니다. 그것을 사용하려면
, 당신은 같은 것을 할 것 :
foreach(var x in theCollection.OfType<int>())
{
// Do something to x
}
+0
정확하게 똑같지는 않습니다. GetType()을 호출 한 다음 상수 연산자와 비교하면 상속 상황에서 다르게 동작합니다. "is"연산자 (즉, Where (i => i가 DesiredType 임))가 OfType에 더 가깝습니다. –
+0
네, 맞습니다. OfType은 "이 코드를 캐스팅 할 수 있습니까?"라는 질문을하므로 Type의 IsAssignableFrom() 메서드와 비슷합니다. –
8
이걸 찾으십니까?
public static IEnumerable<TResult> OfType<TResult>(
this IEnumerable source
)
관련 문제
- 1. 업로드에 허용 된 파일 형식 제한 asp.net
- 2. foreach에 잘못된 인수가 제공되었습니다.
- 3. if foreach에 대한 진술
- 4. foreach에 잘못된 인수가 제공되었습니다!
- 5. 이상적인 게시물 데이터 제한 형식
- 6. LINQ 쿼리에서 반환되는 필드 제한
- 7. 모든 하드 드라이브에서 고유 한 파일 형식 확장명을 선택 하시겠습니까?
- 8. MIME 형식 (내용 유형)에 대한 파일 확장명을 얻는 방법
- 9. linq 함수가 형식 변환시 실패합니다.
- 10. Linq with NHibernate에 대한 "In"제한 만들기
- 11. 타사 DLL을 사용하여 R 확장명을 컴파일
- 12. preg_replace를 사용하여 문자열에서 도메인 확장명을 제거 하시겠습니까?
- 13. strstr을 사용하여 URL 부분과 파일 확장명을 제거하십시오
- 14. C# .Net 3.5 LINQ를 사용하여 파일 확장명을 바꾸는 코드
- 15. 누구나 "처리되지 않은 식 형식 : 1004"NHibernate Linq 사용하여 받았습니다?
- 16. 제네릭 형식 변수 제한 및 인터페이스
- 17. Django 전자 메일 첨부 파일 형식 제한
- 18. MIME 형식 규칙, 표준 또는 제한 사항?
- 19. 중첩 된 forEach에 대한 JSF JSTL 문제
- 20. csh에서 foreach에 루프 카운터를 추가하는 방법
- 21. 집계 LINQ 쿼리의 Entity Framework 개체 제한
- 22. 확장 메서드 Linq 결과 수를 제한 하시겠습니까?
- 23. LINQ : 지정된 형식 멤버가 LINQ에서 지원되지 않습니다.
- 24. Generic을 사용하여 컨테이너 제한
- 25. LINQ 쿼리에서 사용자 지정 형식 사용
- 26. 엔티티에 Linq - NotSupportedException - 동적 유형 - 문자열. 형식
- 27. Linq to SQL + 사용자 지정 데이터 형식
- 28. Silverlight linq-to-entities 익명 형식 문제
- 29. C# Linq Guid 익명 형식 문제
- 30. Linq 함수에 SQL 형식 전달 방법
나는 정말 당신이 "항목은 foreach 루프에서 반환 된"로 무슨 뜻인지 이해가 안 돼요. –
@Thomas, foreach 루프는 실제로 개별 항목이 아닌 열거자를 만들고 열거 자 (Enumerator)는 객체를 반환하지만 '간단 함'을 겨냥했습니다. – ProfK