이미 코드에서 IEnumerable에서 파생 된 클래스가 있습니다. Instance에서 "Contains"메서드를 사용하여 해당 목록의 항목을 찾을 수있는 방법이 있는지 궁금합니다.IEnumerable에 "Contains"메서드가 있습니까?
7
A
답변
15
당신이 정말는 제네릭이 아닌 IEnumerable
, 또는 일반 IEnumerable<T>
을 구현합니까? 아마도 일반적인 것을 구현할 수 있다면 인생은 훨씬 더 단순해질 것입니다. LINQ to Objects을 사용할 수 있습니다. 실제로는 Contains
확장 방법이 있습니다.
그렇지 않으면 Cast
또는 OfType
을 사용하여 비 제너릭에서 일반으로 변환 할 수 있습니다.
bool found = nonGeneric.Cast<TargetType>().Contains(targetItem);
당신은 당신이 원하는 경우, 당신은 매개 변수 TI의 확장 방법으로 사용자 정의 비교자를 추가 할 수 있습니다 :
14
아니요, 아니요, IEnumerable<T>
인터페이스에는 그러한 방법이 없습니다. 사용할 수 있지만 extension method
이 있습니다.
using System.Linq;
다음 :
이IEnumerable<string> foos = new[] { "foo", "bar", "baz" };
bool IsThereABar = foos.Contains("bar");
0
public static bool Contains<T>(this IEnumerable source, T value)
{
foreach (var i in source)
{
if (Equals(i, value))
return true;
}
return false;
}
불구하고 시작하는 일반 인터페이스를 구현 경우가 더 좋은 것은
을 포함합니다관련 문제
- 1. IEnumerable에 대한 빠른 작업?
- 2. IEnumerable에 새 항목을 삽입하는 방법
- 3. For Each 루프를 사용하여 IEnumerable에 액세스 중인지 확인하는 방법이 있습니까?
- 4. IEnumerable에 개체를 unbox하려고하면 IEnumerable은 '형식'이지만 '변수'오류처럼 사용됩니다.
- 5. 이벤트 인수에서 IEnumerable에 대한 유용한 정보
- 6. 형식을 사용할 수있는 일반 IEnumerable에 개체 캐스팅
- 7. 이유는 IEnumerable에 대한 합계() 확장은 없다 <uint>
- 8. 동일한 IEnumerable에 대해 여러 개의 쿼리를 실행하는 LINQ (개체에 대해)?
- 9. C# IEnumerable에 AddItem의 확장 메서드 <T>
- 10. IEnumerable에 대한 String.Join (string, string [])의 유사어 <T>
- 11. 하나의 IEnumerable에 다른 IEnumerable의 모든 요소가 포함되어 있는지 확인
- 12. 를 IEnumerable에 업로드 된 파일을 바인딩하는 방법을 <HttpPostedFileBase> 부동산
- 13. Select 다음에 Where가 오는 경우 IEnumerable에 대해 두 번의 반복이 수행됩니까?
- 14. automapper를 사용하여 ienumerable을 bool에 매핑 할 수 있습니까?
- 15. .NET에 Object1.CopyTo (Object2) 메서드가 있습니까?
- 16. IIS에 대한 단일 웹 요청이 단일 스레드에 남아 있습니까?
- 17. EF Linq 결과를 IEnumerable에 투영하는 방법 <IBook> Book이 명시 적으로 IBook에서 구현하는 항목은 무엇입니까? 아래에, simialr 뭔가를 인터페이스는 IEnumerable로 EF의 LINQ 결과를 프로젝트에 노력
- 18. IEnumerable - 내 확장 방법
- 19. HashSet에서 별개의 <>() 호출
- 20. IEnumerable 용 ASP.NET MVC EditorTemplate
- 21. PhoneApplicationPage 내의 모든 요소에 액세스하는 방법은 무엇입니까?
- 22. byte, uint가없는 이유는 무엇입니까?
- 23. ObjectDataSource의 요점은 무엇입니까
- 24. 있습니까
- 25. GetEnumerator()가 IEnumerator와 별도의 인터페이스에 저장된 이유는 무엇입니까?
- 26. C# 배열에 Contains() 확장 메서드 사용
- 27. 이 프레임 워크를 사용하여이 코드를 리팩토링 할 수 있습니까?
- 28. Linq : 단일 문자열에 IEnumerable <string >의 결과를 결합하십시오.
- 29. Intersect LINQ 쿼리
- 30. System.Linq 및 IEnumerable 그룹 도움말