foreach 루프를 사용하지 않고 목록에서 요소를 검색하려면 어떻게해야합니까?C#에서 foreach 루프를 사용하지 않고 목록의 요소를 검색하는 방법은 무엇입니까?
답변
var list = new List<int> { 1, 2, 3, 4, 5 };
for (int i = 0; i < list.Count(); i++)
{
var element = list[i];
}
또는
var list = new List<int> { 1, 2, 3, 4, 5 };
using (var enumerator = list.GetEnumerator())
{
while (enumerator.MoveNext())
{
var element = enumerator.Current;
}
}
열거자를 처리하는 것을 잊지 마십시오. –
감사합니다 - 업데이트 됨 –
당신은 목록 말하지만, 당신은 또한 this answer assumes (과 List<T>
클래스를 지정하지 않으면, 그 대답은 당신입니다. 백작() 확장 메서드를 사용하는 추가 될 수 형식이 List<T>
인 것을 알고 계신다면 속성 인을 사용하는 것이 더 좋습니다.
IList<T>
인터페이스 구현을 항상 사용하는 경우 인덱스를 반복하고 그 값으로 인덱서에 액세스하는 for 루프를 사용하면 정상적으로 작동합니다.
그러나 IEnumerable<T>
구현을 다루는 경우에는 항상 작동하지 않습니다. 대신 다음을 수행해야합니다.
컴파일러가 컴파일 될 때 foreach 문을 확장하는 방법입니다. 기본적으로 IEnumerable<T>
구현은 IDisposable을 구현할 수 있기 때문에 IDisposable로 캐스팅하려고 시도하여 그 결과를 준비합니다. 그렇지 않으면 using 문은 종료시 아무 것도하지 않습니다.
배열에서 foreach를 사용할 때 컴파일러는 위의 열거 형 접근법이 아닌 인덱스별로 항목에 액세스하는 루프로 확장됩니다 (직접 배열 인스턴스로 작업하는 경우). 당신이 이런 유형의 루프 방지하려는 경우
:
foreach(var item in list) {};
을 ... 당신은 검색 목록에서 검색 할 Linq에 또는 람다 표현식을 사용할 수 있습니다. 예를 들어
:
using System.Linq;
// ... with Lambda
var ints = new List<int>(){1,2,3,4,5};
var evenInts = ints.ForEach(i => i % 2 == 0);
// with straight Linq-to-objects:
var oddInts = from i in ints
where i % 2 == 1
select i;
난 당신이 foreach 문을 사용하지 않는 이유를 알고 싶습니다
- 1. Smarty : foreach 루프를 사용하지 않고 배열의 특정 요소를 인쇄하지 않고
- 2. 이중 루프를 사용하지 않고 어떻게합니까?
- 3. objective-c에서 for 루프를 사용하여 배열에 요소를 추가하는 방법은 무엇입니까?
- 4. for/foreach/while을 사용하지 않고 메소드를 루핑하기
- 5. PHP foreach 루프를 만드는 방법은 무엇입니까?
- 6. 루프를 사용하지 않고 두 변수의 함수를 생성하는 방법은 무엇입니까?
- 7. 루프를 사용하지 않고 데이터 세트 테이블에서 특정 열을 검색하는 방법은 무엇입니까? VS 2005 C#
- 8. AppEngine에서 StringListProperty의 n 번째 요소를 검색하는 방법은 무엇입니까?
- 9. 벡터에서 요소를 검색하는 방법은 무엇입니까?
- 10. MATLAB에서 루프를 사용하지 않고 행렬 요소를 인접 요소와 비교하는 방법은 무엇입니까?
- 11. C# 2.0의 foreach 루프를 사용하지 않고 필터 목록 <> 객체
- 12. 목록의 멤버를 알파벳순으로 검색하는 방법은 무엇입니까?
- 13. foreach 루프를 깨기.
- 14. 루프를 사용하지 않고 행렬의 행 자르기
- 15. while 루프를 사용하지 않고 포트를 계속 검사합니다.
- 16. foreach 루프를 사용하여 두 목록을 반복합니다.
- 17. 다른 foreach 루프에 foreach 루프를 삽입해도 안전합니까?
- 18. Scheme에서 목록의 요소를 만들고 추가하는 방법은 무엇입니까?
- 19. 브라우저를 사용하지 않고 Flash를 사용하지 않고 글꼴을 포함시키는 방법은 무엇입니까?
- 20. 전역을 사용하지 않고 스레드의 배열 요소를 삽입/삭제/검색하십시오.
- 21. 디스플레이 단일 이미지 사용 나는 단지 foreach 루프를 사용하지 않고 데이터베이스에서 하나의 이미지를 표시하려면 어떻게 CakePHP의
- 22. 이 두 foreach 루프를 수행하는 가장 효율적인 방법은 무엇입니까?
- 23. LINQ를 사용하여 목록의 목록 요소를 계산하는 방법은 무엇입니까?
- 24. for 루프를 사용하지 않고 값 목록에서 목록 상자에 값 추가
- 25. C에서 문자열 배열에 요소를 추가하는 방법은 무엇입니까?
- 26. cakephp를 사용하여 각 루프를 사용하지 않고 일련의 데이터를 표시하려면 어떻게해야합니까?
- 27. C에서 일반적인 foreach 루프
- 28. 중첩 된 foreach 루프를 LINQ로 변환
- 29. 확인란을 선택하면 foreach 루프를 구현하는 C# 논리
- 30. objective-c에서 외부 키보드 연결을 검색하는 방법은 무엇입니까?
. 귀하의 질문에 더 잘 답변하는 데 도움이되는 세부 정보가있을 수 있습니다. –
당신은 무엇을하려고합니까? 왜 foreach를 사용할 수 없습니까? 리스트 인덱서는 어떻습니까? –
iterator를 사용하여 검색하고 싶습니다. – ratty