Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O IEnumerable<T> interface é implementada por classes que podem retornar uma seqüência de um item de valores ao mesmo tempo.A vantagem de retornar o item de dados, um por vez é que você não precisará carregar o conjunto completo de dados na memória para trabalhar com ela.Você só precisará usar memória suficiente para carregar um único item de dados.Classes que implementam o IEnumerable(T) interface pode ser usada com For Each loops ou consultas LINQ.
Por exemplo, considere um aplicativo que deve ler um arquivo de texto grande e o retorno de cada linha do arquivo que correspondam aos critérios de pesquisa específico.O aplicativo usa uma consulta LINQ para retornar linhas do arquivo que correspondam aos critérios especificados.Para consultar o conteúdo do arquivo, usando uma consulta LINQ, o aplicativo foi possível carregar o conteúdo do arquivo em uma matriz ou uma coleção.No entanto, carregando o arquivo inteiro em uma matriz ou coleção consumiria muito mais memória do que o necessário.A consulta do LINQ em vez disso, foi possível consultar o conteúdo do arquivo usando uma classe enumerable, 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 origem 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 origem.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 para ler uma texto arquivo uma linha por vez.
Observação |
|---|
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 de Visual Studio. |
Criando a classe Enumerable
Para criar o projeto da classe enumerable |
|
A primeira classe neste projeto é a classe enumerable e implementará o IEnumerable(Of String) interface.Essa interface 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 enumerable em seu código juntamente com as estruturas de controle que exigem um objeto que implementa IEnumerable, como um For Next loop ou uma consulta LINQ.A exemplo a seguir mostra a StreamReaderEnumerable em uma consulta 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
Para cada...Próxima instrução (Visual Basic)
Conceitos
Introdução ao LINQ em Visual Basic
Estruturas de loop (Visual Basic)
Observação