Ir para o conteúdo do rodapé
AJUDA DO .NET

Listas em C# (Como funciona para desenvolvedores)

Listas são estruturas de dados versáteis e dinâmicas usadas para armazenar e manipular coleções de dados em C#. Eles fazem parte do namespace System.Collections.Generic, que fornece uma gama de classes de coleção poderosas e com tipagem estática, além de objetos fortemente tipados. Este tutorial para iniciantes irá guiá-lo pelos conceitos básicos do uso de listas em C#, incluindo como criar/adicionar elementos, acessar índices específicos ou primeiras ocorrências, modificar elementos específicos e remover elementos, além de alguns casos de uso comuns.

Criando listas

Para começar a usar a classe List, primeiro você precisa incluir o namespace System.Collections.Generic no seu código:

using System.Collections.Generic;
using System.Collections.Generic;
Imports System.Collections.Generic
$vbLabelText   $csharpLabel

Após adicionar o namespace genérico, crie um novo objeto List especificando o tipo de dados de todos os elementos que você deseja armazenar entre colchetes angulares (< >). Aqui está um exemplo de como criar uma lista de números inteiros:

List<int> numbers = new List<int>();
List<int> numbers = new List<int>();
Dim numbers As New List(Of Integer)()
$vbLabelText   $csharpLabel

Você também pode inicializar uma lista com alguns valores iniciais ou defini-la pela coleção especificada, como neste exemplo:

List<string> fruits = new List<string> { "apple", "banana", "cherry" };
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
$vbLabelText   $csharpLabel

Também podemos especificar a capacidade inicial padrão da lista. A capacidade inicial especificada é a capacidade máxima padrão da lista.

Métodos de lista

Adicionando o número de elementos a uma lista

Para adicionar elementos à sua lista, use o método Add():

numbers.Add(1);     // Adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1);     // Adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1) ' Adds first element
numbers.Add(2)
numbers.Add(3)
$vbLabelText   $csharpLabel

Você também pode adicionar um intervalo de elementos de uma coleção específica à lista usando o método AddRange:

List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
Dim moreNumbers As New List(Of Integer) From {4, 5, 6}
numbers.AddRange(moreNumbers)
$vbLabelText   $csharpLabel

Acessando elementos de lista

Você pode acessar elementos individuais de uma lista usando um índice, assim como acontece com arrays:

string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"
string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"
Dim firstFruit As String = fruits(0) ' "apple"
Dim secondFruit As String = fruits(1) ' "banana"
$vbLabelText   $csharpLabel

Lembre-se de que as listas são indexadas a partir de zero, portanto, o primeiro elemento tem índice 0. O exemplo acima armazenará o elemento na string se ele existir.

Modificando elementos da lista

Para modificar um elemento em uma lista, basta atribuir um novo valor ao elemento no índice desejado, levando em consideração o índice baseado em zero:

fruits[1] = "blueberry";
fruits[1] = "blueberry";
fruits(1) = "blueberry"
$vbLabelText   $csharpLabel

Agora, o segundo elemento na lista de frutas é "mirtilo" em vez de "banana".

Removendo elementos de uma lista

Para remover um elemento de uma lista, você pode usar o método Remove, que remove a primeira ocorrência de um elemento especificado:

fruits.Remove("apple");
fruits.Remove("apple");
fruits.Remove("apple")
$vbLabelText   $csharpLabel

Alternativamente, você pode usar o método RemoveAt para remover um elemento no índice especificado:

fruits.RemoveAt(0);
fruits.RemoveAt(0);
fruits.RemoveAt(0)
$vbLabelText   $csharpLabel

Para remover todos os elementos de uma lista, use o método Clear:

fruits.Clear();
fruits.Clear();
fruits.Clear()
$vbLabelText   $csharpLabel

Encontrando elementos em uma lista

Você pode usar o método Contains() para verificar se uma lista contém um elemento específico:

bool containsApple = fruits.Contains("apple");  // true
bool containsApple = fruits.Contains("apple");  // true
Dim containsApple As Boolean = fruits.Contains("apple") ' true
$vbLabelText   $csharpLabel

Para encontrar o índice da primeira ocorrência de um elemento, use o método IndexOf:

int appleIndex = fruits.IndexOf("apple");  // 0
int appleIndex = fruits.IndexOf("apple");  // 0
Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0
$vbLabelText   $csharpLabel

Se o elemento não for encontrado, IndexOf retorna -1.

Percorrendo uma lista

Para iterar pelos elementos de uma lista, você pode usar um loop:

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
For Each fruit As String In fruits
	Console.WriteLine(fruit)
Next fruit
$vbLabelText   $csharpLabel

Alternativamente, você pode usar um loop for com a propriedade Count, que retorna o número de elementos na lista:

for (int i = 0; i < fruits.Count; i++)
{
    Console.WriteLine(fruits[i]);
}
for (int i = 0; i < fruits.Count; i++)
{
    Console.WriteLine(fruits[i]);
}
For i As Integer = 0 To fruits.Count - 1
	Console.WriteLine(fruits(i))
Next i
$vbLabelText   $csharpLabel

Ordenando uma lista

Para ordenar uma lista em ordem crescente, use o método Sort:

List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();

// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();

// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
Dim unsortedNumbers As New List(Of Integer) From {5, 2, 8, 1, 4}
unsortedNumbers.Sort()

' Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
$vbLabelText   $csharpLabel

Para ordenar uma lista em ordem decrescente, você pode usar o método Sort com uma comparação personalizada:

unsortedNumbers.Sort((a, b) => b.CompareTo(a));

// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort((a, b) => b.CompareTo(a));

// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort(Function(a, b) b.CompareTo(a))

' Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
$vbLabelText   $csharpLabel

Para classificações mais complexas, você pode implementar uma classe personalizada IComparer ou usar LINQ (Language Integrated Query). O algoritmo de busca binária funciona em listas ordenadas.

Usando LINQ com Listas

O LINQ permite realizar consultas e transformações poderosas em coleções, incluindo listas. Para usar o LINQ, primeiro você precisa incluir o namespace System.Linq no seu código:

using System.Linq;
using System.Linq;
Imports System.Linq
$vbLabelText   $csharpLabel

Aqui estão alguns exemplos de consultas LINQ em uma lista:

Filtrar uma lista

List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
Dim evenNumbers As List(Of Integer) = numbers.Where(Function(x) x Mod 2 = 0).ToList()
$vbLabelText   $csharpLabel

Mapeamento (transformação) de elementos em uma lista

List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
Dim fruitNamesUpperCase As List(Of String) = fruits.Select(Function(x) x.ToUpper()).ToList()
$vbLabelText   $csharpLabel

Encontrando os valores mínimo e máximo em uma lista

int minValue = numbers.Min();
int maxValue = numbers.Max();
int minValue = numbers.Min();
int maxValue = numbers.Max();
Dim minValue As Integer = numbers.Min()
Dim maxValue As Integer = numbers.Max()
$vbLabelText   $csharpLabel

Converter uma lista em um array

Para converter uma lista em um array, você pode usar o método ToArray:

int[] numbersArray = numbers.ToArray();
int[] numbersArray = numbers.ToArray();
Dim numbersArray() As Integer = numbers.ToArray()
$vbLabelText   $csharpLabel

Exportando dados de lista para um PDF usando o IronPDF

Nesta seção, demonstraremos como exportar os dados de uma lista para um arquivo PDF usando a biblioteca IronPDF . Isso pode ser útil quando você deseja gerar um relatório ou uma versão para impressão dos seus dados.

Primeiro, baixe e instale o pacote NuGet IronPDF em seu projeto:

Install-Package IronPdf

Em seguida, inclua o namespace IronPdf em seu código:

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Agora, vamos criar uma função simples que converte uma lista de strings em uma tabela HTML e depois a exporta para um arquivo PDF:

using System.Collections.Generic;
using System.Text;
using IronPdf;

void ExportListToPdf(List<string> data, string pdfFilePath)
{
    // Create an HTML table from the list data
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("<table><tr><th>Item</th></tr>");

    foreach (string item in data)
    {
        htmlBuilder.Append($"<tr><td>{item}</td></tr>");
    }

    htmlBuilder.Append("</table>");

    // Convert the HTML table to a PDF using IronPDF
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());

    // Save the PDF to the specified file path
    pdf.SaveAs(pdfFilePath);
}
using System.Collections.Generic;
using System.Text;
using IronPdf;

void ExportListToPdf(List<string> data, string pdfFilePath)
{
    // Create an HTML table from the list data
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("<table><tr><th>Item</th></tr>");

    foreach (string item in data)
    {
        htmlBuilder.Append($"<tr><td>{item}</td></tr>");
    }

    htmlBuilder.Append("</table>");

    // Convert the HTML table to a PDF using IronPDF
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());

    // Save the PDF to the specified file path
    pdf.SaveAs(pdfFilePath);
}
Imports System.Collections.Generic
Imports System.Text
Imports IronPdf

Private Sub ExportListToPdf(ByVal data As List(Of String), ByVal pdfFilePath As String)
	' Create an HTML table from the list data
	Dim htmlBuilder As New StringBuilder()
	htmlBuilder.Append("<table><tr><th>Item</th></tr>")

	For Each item As String In data
		htmlBuilder.Append($"<tr><td>{item}</td></tr>")
	Next item

	htmlBuilder.Append("</table>")

	' Convert the HTML table to a PDF using IronPDF
	Dim renderer = New ChromePdfRenderer()
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())

	' Save the PDF to the specified file path
	pdf.SaveAs(pdfFilePath)
End Sub
$vbLabelText   $csharpLabel

Para usar essa função, basta chamá-la com sua lista e o caminho do arquivo PDF desejado:

List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
ExportListToPdf(fruits, "Fruits.pdf")
$vbLabelText   $csharpLabel

Isso irá gerar um arquivo PDF chamado "Fruits.pdf" contendo uma tabela com a lista de frutas, convertendo HTML para PDF com o IronPDF . Você pode modificar a função ExportListToPdf para atender às suas necessidades, como adicionar estilo personalizado à tabela HTML ou conteúdo adicional ao PDF.

Lista C# (Como funciona para desenvolvedores) Figura 1 - HTML para PDF

Conclusão

Neste tutorial para iniciantes, abordamos os conceitos básicos de listas em C# e demonstramos como integrar o IronPDF para exportar dados de listas para um arquivo PDF. Ao incorporar o IronPDF em seus projetos, você pode gerar facilmente relatórios, faturas ou outros documentos imprimíveis a partir de seus projetos em C#.

O IronPDF oferece um período de teste gratuito , permitindo que você experimente suas funcionalidades antes de efetuar a compra.

Perguntas frequentes

Como posso criar uma lista em C#?

Para criar uma lista em C#, você precisa incluir o namespace System.Collections.Generic . Em seguida, você pode declarar uma lista especificando o tipo de dados entre colchetes angulares. Por exemplo: List numbers = new List ();

Quais métodos são usados para adicionar elementos a uma lista em C#?

É possível adicionar elementos a uma lista em C# usando o método Add() para elementos individuais e AddRange() para adicionar uma coleção de elementos.

Como posso exportar uma lista em C# para um arquivo PDF?

Para exportar uma lista C# para um arquivo PDF, você pode usar a biblioteca IronPDF. Converta os dados da sua lista para o formato de tabela HTML e, em seguida, renderize-a como um PDF usando o IronPDF.

Qual a melhor maneira de ordenar uma lista em C#?

Você pode ordenar uma lista em C# em ordem crescente usando o método Sort() . Para ordenar em ordem decrescente, você pode usar Sort() com um delegado de comparação personalizado.

Como acessar elementos em uma lista em C#?

Os elementos em uma lista C# podem ser acessados usando seu índice, de forma semelhante aos arrays. As listas são indexadas a partir de zero, portanto, você pode usar a posição de um elemento na lista para recuperá-lo.

Quais opções estão disponíveis para remover elementos de uma lista em C#?

Você pode remover elementos de uma lista em C# usando o método Remove() para elementos específicos, RemoveAt() para um índice específico ou Clear() para remover todos os elementos.

Como o LINQ pode ser utilizado com listas em C#?

O LINQ pode ser usado com listas em C# para realizar consultas e transformações poderosas, como filtragem, mapeamento e busca de valores mínimos ou máximos de forma eficiente.

Como posso converter uma lista em um array em C#?

Você pode converter uma lista C# em um array usando o método ToArray() , que cria um novo array contendo os elementos da lista.

Quais são alguns casos de uso comuns para listas em C#?

As listas em C# são comumente usadas para gerenciar coleções dinâmicas de dados, executar consultas complexas com LINQ e gerar relatórios ou documentos usando bibliotecas como o IronPDF.

Como iterar sobre os elementos de uma lista em C#?

Você pode iterar sobre os elementos de uma lista em C# usando loops foreach para iteração simples ou loops for quando precisar do índice.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim