의 차이 무엇입니까 Directory.EnumerateFiles
대는 GetFiles
?
분명히 하나는 배열을 반환하고 다른 하나는 Enumerable을 반환합니다.
다른 거있어?
답변
에서 워드 프로세서 :
EnumerateFiles 및 GetFiles 메서드는 다음과 다릅니다. EnumerateFiles를 사용하면 전체 컬렉션이 반환되기 전에 이름 컬렉션 열거를 시작할 수 있습니다. GetFiles를 사용할 때는 배열에 액세스하기 전에 전체 이름 배열이 반환 될 때까지 기다려야합니다. 따라서 많은 파일과 디렉터리를 사용하는 경우 EnumerateFiles가 더 효율적일 수 있습니다.
그러니까 기본적으로, EnumerateFiles
반환 IEnumerable
하는 반면 게으르게 다소 평가 될 수있는 GetFiles
반환 string[]
은 반환하기 전에 가지고있는 완전히 채워 할 수 있습니다.
답변
EnumerateFiles
리턴 IEnumerable<string>
되고 지연된 실행을 의미합니다. Fx4 이상에서만 사용할 수 있습니다.
답변
EnumerateFiles를 사용할 때를 사용하면 모든 속도가 손실됩니다 .Last
. 마지막 파일에 도달하려면 모든 파일을 열거 한 다음 마지막 파일을 가져와야하므로 당연한 일입니다.
그러나 단순히 첫 번째 항목을 잡고 계속 진행하기 때문에 사용 .First
하거나 .FirstOrDefault
매우 빠르게됩니다.