Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O IEnumerable<T> interface é implementada por classes que podem retornar uma sequência de valores de um item por vez. A vantagem de retornar os dados de um item por vez é o que você não precisará carregar o conjunto completo de dados na memória para trabalhar com ela. Basta usar o suficiente memória para carregar um único item de dados. Classes que implementam o IEnumerable(T) interface pode ser usada com For Each loops ou consultas do LINQ .
Por exemplo, considere um aplicativo que deve ler um grande arquivo de texto e o retorno de cada linha do arquivo que corresponde aos critérios de pesquisa específico. O aplicativo usa umaconsulta do LINQpara retornar linhas do arquivo que correspondam aos critérios especificados. Para consulta o conteúdo do arquivo, usando umaconsultado LINQ, o aplicativo foi possível carregar o conteúdo do arquivo em uma matriz ou uma coleção. No entanto, carregar o arquivo inteiro em uma matriz ou coleção consumiria muito mais memória do que é necessário. Aconsulta do LINQpoderia em vez disso, consulta o conteúdo do arquivo usando um enumerable classe, retornando somente os valores que correspondem aos critérios de pesquisa. Consultas que retornam apenas alguns valores correspondentes consumiria muito menos memória.
Você pode criar uma classe que implementa o IEnumerable<T> interface para expor os dados de fonte como dados enumerable. Sua classe que implementa o IEnumerable(T) interface exigirá a outra classe que implementa o IEnumerator<T> interface para iterar por meio de dados de fonte . Essas duas classes permitem que você retornar os itens de dados seqüencialmente, como um tipo específico.
Esta explicação passo a passo, você irá criar uma classe que implementa o IEnumerable(Of String) interface e uma classe que implementa o IEnumerator(Of String) interface ler um arquivo de texto , uma linha em uma hora.
![]() |
---|
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio. |
Criando a classe Enumerable
Para criar oprojetode enumerable classe |
|
A primeira classe deste projeto é a classe enumerable e implementará o IEnumerable(Of String) interface. Essa interface de genérica implementa o IEnumerable interface e garante que os consumidores dessa classe podem acessar os valores digitados como String.
Para adicionar o código para implementar IEnumerable |
|
Para adicionar o código para implementar IEnumerator |
|
Usando o iterador de Exemplo
Você pode usar uma classe de enumerable em seu código, juntamente com as estruturas de controle que exigem um objeto que implementa IEnumerable, como um For Nextloop ou umaconsultado LINQ. A exemplo a seguir mostra a StreamReaderEnumerable em umaconsultado LINQ.
Dim adminRequests =
From line In New StreamReaderEnumerable("..\..\log.txt")
Where line.Contains("admin.aspx 401")
Dim results = adminRequests.ToList()
Consulte também
Referência
Instrução For Each...Next (Visual Basic)
Conceitos
Introdução ao LINQ no Visual Basic
Estruturas de loop (Visual Basic)