IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

C# iList (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

Introdução ao IList

IList é parte do namespace Collections do .NET Framework. Trata-se de uma interface de coleção não genérica que fornece o modelo para uma coleção de objetos que podem ser acessados ​​individualmente por seu índice. Ao contrário dos arrays, IList permite um número dinâmico de elementos de valor de objeto, o que significa que você pode adicionar ou remover elementos da coleção conforme necessário. Serve como interface base para todas as listas não genéricas no .NET Framework, oferecendo uma maneira de gerenciar uma coleção de objetos de forma mais flexível do que com arrays. Aprenderemos sobre a interface IList e sobre a biblioteca IronPDF C# PDF neste tutorial.

Compreendendo a Interface IList

A declaração public interface IList é uma parte fundamental da criação de coleções personalizadas em C# que aderem ao contrato IList especificado pelo namespace Collections do .NET Framework. IList inclui propriedades e métodos que permitem acessar elementos na coleção, contá-los e modificar a coleção adicionando, inserindo ou removendo elementos. Aqui estão algumas das principais propriedades e métodos definidos na interface IList:

  • Propriedades como IsFixedSize e IsReadOnly informam se a coleção tem tamanho fixo ou é somente leitura, respectivamente.
  • Métodos como Add, Insert, Remove, e RemoveAt são usados para modificar elementos dentro da coleção. Você pode adicionar, inserir e remover elementos.
  • O método IndexOf é para localizar elementos, e a propriedade Item (ou indexador em C#) permite obter e definir elementos com base no índice.

Uso Prático da Interface IList

Para mostrar como IList funciona, vamos criar um exemplo simples. Este exemplo demonstrará como declarar um IList, adicionar itens a ele e iterar sobre seu conteúdo.

Criando e Modificando um IList

Primeiro, vamos ver como declarar um IList e adicionar itens a ele:

using System;
using System.Collections;

class Program
{
    static void Main(string[] args)
    {
        // Creating an IList instance
        IList myIList = new ArrayList();

        // Adding elements to the IList
        myIList.Add("Hello");
        myIList.Add(10);
        myIList.Add(new object());

        // Displaying the number of values in the IList using the Count property
        Console.WriteLine($"Number of elements: {myIList.Count}");

        // Accessing elements using a loop
        foreach (var element in myIList)
        {
            Console.WriteLine(element);
        }
    }
}

No exemplo acima, criamos uma instância IList usando ArrayList, uma classe que implementa IList. Adicionamos uma mistura de diferentes tipos de objetos para demonstrar que um IList pode conter qualquer objeto. Finalmente, iteramos sobre a coleção, imprimindo cada elemento.

Acesso e modificação baseados em índice

Acessar e modificar elementos pelo seu índice é uma característica chave de IList. O exemplo a seguir mostra como você pode fazer isso:

using System;
using System.Collections;

class Program
{
    static void Main(string[] args)
    {
        IList myIList = new ArrayList { "Hello", 10, new object() };

        // Accessing an element by index
        object value = myIList[1];
        Console.WriteLine($"Element at index 1: {value}");

        // Modifying an element by index
        myIList[1] = 20;
        Console.WriteLine($"Modified element at index 1: {myIList[1]}");
    }
}

Implementando um IList Personalizado

Às vezes, você pode precisar de uma coleção personalizada que herde IList. Isso permite maior controle sobre como os elementos são armazenados, acessados ​​e modificados. Abaixo está um exemplo de uma coleção personalizada simples implementando IList:

using System;
using System.Collections;

public class CustomCollection : IList
{
    private ArrayList _innerList = new ArrayList();

    public object this[int index]
    {
        get => _innerList[index];
        set => _innerList[index] = value;
    }

    public bool IsFixedSize => _innerList.IsFixedSize;
    public bool IsReadOnly => _innerList.IsReadOnly;
    public int Count => _innerList.Count;
    public bool IsSynchronized => _innerList.IsSynchronized;
    public object SyncRoot => _innerList.SyncRoot;

    public int Add(object value)
    {
        return _innerList.Add(value);
    }

    public void Clear()
    {
        _innerList.Clear();
    }

    public bool Contains(object value)
    {
        return _innerList.Contains(value);
    }

    public int IndexOf(object value)
    {
        return _innerList.IndexOf(value);
    }

    public void Insert(int index, object value)
    {
        _innerList.Insert(index, value);
    }

    public void Remove(object value)
    {
        _innerList.Remove(value);
    }

    public void RemoveAt(int index)
    {
        _innerList.RemoveAt(index);
    }

    public void CopyTo(Array array, int index)
    {
        _innerList.CopyTo(array, index);
    }

    public IEnumerator GetEnumerator()
    {
        return _innerList.GetEnumerator();
    }
}

Esta classe CustomCollection encapsula um ArrayList, uma classe que em si implementa IList. Nosso CustomCollection encaminha chamadas para o ArrayList subjacente, permitindo que ele se comporte como qualquer outra coleção que implemente IList. Este exemplo demonstra a criação de uma coleção que pode ser acessada por índice, modificada (itens adicionados, inseridos ou removidos) e iterada, assim como qualquer coleção embutida do .NET que implemente IList.

Operações Avançadas com IList

Além das operações básicas de adicionar, remover e acessar, IList permite manipulações e consultas mais complexas. Por exemplo, verificar se a coleção contém um objeto específico ou encontrar o índice de um objeto dentro da coleção são operações que podem ser essenciais para determinadas aplicações:

using System;
using System.Collections;

class Program
{
    static void Main(string[] args)
    {
        IList myIList = new ArrayList { "Hello", 10, new object() };

        // Check if the IList contains a specific object
        bool contains = myIList.Contains(10); // Assuming 10 was added previously
        Console.WriteLine($"Contains 10: {contains}");

        // Find the index of a specific object
        int index = myIList.IndexOf(10);
        Console.WriteLine($"Index of 10: {index}");
    }
}

Essas operações podem ser particularmente úteis ao lidar com coleções de objetos onde é necessário determinar a presença ou a posição de itens específicos sem iterar sobre toda a coleção.

IronPDF: Biblioteca PDF em C#

C# iList (Como Funciona para Desenvolvedores): Figura 1 - IronPDF

IronPDF é uma biblioteca PDF para desenvolvedores .NET que permite a criação e manipulação de documentos PDF diretamente em aplicações .NET . Ele permite a conversão de documentos HTML para PDF , imagens e páginas da web para PDF. Com esta biblioteca, os desenvolvedores podem adicionar facilmente funcionalidades de PDF aos seus aplicativos. O IronPDF também inclui recursos para editar, mesclar e dividir arquivos PDF, proporcionando controle abrangente sobre a manipulação de PDFs.

O IronPDF se destaca na conversão de HTML para PDF , garantindo a preservação precisa dos layouts e estilos originais. É perfeito para criar PDFs a partir de conteúdo da web, como relatórios, faturas e documentação. Com suporte para arquivos HTML, URLs e strings HTML brutas, o IronPDF produz facilmente documentos PDF de alta qualidade.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

Exemplo de código

Aqui está um exemplo simples que demonstra a geração de um documento PDF a partir de uma lista de strings usando IronPDF e a interface IList:

using IronPdf;
using System.Collections.Generic;

public class PDFGenerator
{
    public static void GeneratePDFFromList(IList<string> dataList)
    {
        // Initialize the HtmlToPdf renderer
        var renderer = new ChromePdfRenderer();

        // Start building HTML content from the dataList
        var htmlContent = "<h1>My Data List</h1><ul>";
        foreach (var item in dataList)
        {
            htmlContent += $"<li>{item}</li>";
        }
        htmlContent += "</ul>";

        // Convert HTML string to PDF
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF to a file
        pdfDocument.SaveAs("DataList.pdf");
    }
}

// Example usage
class Program
{
    static void Main(string[] args)
    {
        License.LicenseKey = "License-Key";
        IList<string> myDataList = new List<string> { "Apple", "Banana", "Cherry" };
        PDFGenerator.GeneratePDFFromList(myDataList);
    }
}

Neste exemplo, um IList<string> é usado para armazenar uma coleção de nomes de frutas. O método GeneratePDFFromList então itera sobre esta lista, construindo uma string HTML que inclui cada item em uma lista não ordenada. O ChromePdfRenderer do IronPDF converte este conteúdo HTML em um documento PDF, que é posteriormente salvo em um arquivo.

C# iList (Como Funciona para Desenvolvedores): Figura 2 - Saída PDF

Conclusão

Este guia para iniciantes pretendeu cobrir os conceitos básicos e usos práticos de IList em C#. Com exemplos que vão desde o uso simples até a implementação personalizada, fica claro que IList é uma ferramenta poderosa no kit de ferramentas do desenvolvedor C#. Quer você esteja manipulando coleções de dados ou construindo seus próprios tipos de coleção, IList oferece a funcionalidade e flexibilidade necessárias para um desenvolvimento de software eficaz. IronPDF oferece uma avaliação gratuita de sua biblioteca PDF para usuários interessados, com licenças disponíveis a partir de $999.

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 bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.