IEnumerable 경고의 가능한 다중 열거 처리
프로그래밍에서 IEnumerable 인스턴스가 다음과 같은 경우 "IEnumerable의 다중 열거 가능" 경고가 발생합니다. 메서드 내에서 여러 번 반복되었습니다. 이 문제는 반복자에 상태가 있고 후속 열거에서 다른 결과가 나오거나 예외가 발생할 수 있기 때문에 발생합니다.
제공된 샘플 코드에서:
public List<object> Foo(IEnumerable<object> objects) { // ... }
objects 매개 변수는 IEnumerable
대체 솔루션
추천 솔루션은 다음과 같습니다.
최적 솔루션
권장되는 조치 과정은 메서드의 특정 요구 사항과 호출자의 예상되는 동작에 따라 다릅니다.
메서드가 여러 번 열거될 수 있는 고정 컬렉션을 기대하는 경우, 매개변수를 IList/ICollection으로 선언하는 것이 좋습니다. 이는 호출자에게 기대치를 명확하게 전달하고 한 번만 열거될 것으로 예상되는 비용이 많이 드는 객체를 실수로 전달하는 것을 방지합니다.
또는 메서드가 IEnumerable을 허용해야 하고 여러 열거가 필요한 경우 다음을 수행할 수 있습니다. 메서드 시작 시 .ToList() 변환을 수행합니다. 그러나 이 접근 방식은 잠재적인 성능 영향을 고려하여 주의해서 사용해야 합니다.
.NET에는 추가/제거 기능 없이 개수 및 인덱서 액세스가 있는 열거 가능한 컬렉션을 위해 특별히 설계된 인터페이스가 없다는 점에 유의하는 것이 중요합니다. 이 문제를 해결하는 데 이상적입니다.
위 내용은 C#에서 'IEnumerable의 다중 열거 가능' 경고를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!