Manipulação de Dados em C#: Trabalhando com Collections e LINQ

24/09/2024

Manipulação de Dados em C#: Trabalhando com Collections e LINQ

C# oferece uma variedade de coleções para armazenar e manipular dados de forma eficiente. Além disso, a Language Integrated Query (LINQ) permite que você consulte e manipule esses dados de maneira intuitiva e poderosa. Neste artigo, vamos explorar como trabalhar com coleções e usar LINQ para manipulação de dados em C#.

1. Coleções em C#

O C# possui diversas coleções que podem ser usadas para armazenar dados, incluindo:

  • Arrays: Estruturas de dados que armazenam um número fixo de elementos do mesmo tipo.
  • List: Uma lista genérica que pode crescer dinamicamente.
  • Dictionary: Armazena pares chave-valor, permitindo acesso rápido aos dados.
  • HashSet: Uma coleção que armazena elementos únicos e permite operações de conjunto.

2. Trabalhando com List

A classe List é uma das coleções mais utilizadas em C#. Aqui está um exemplo de como criar e manipular uma lista:

using System;
    using System.Collections.Generic;

    class Program
    {
        static void Main()
        {
            List frutas = new List();
            frutas.Add("Maçã");
            frutas.Add("Banana");
            frutas.Add("Laranja");

            // Iterar sobre a lista
            foreach (var fruta in frutas)
            {
                Console.WriteLine(fruta);
            }

            // Remover um item
            frutas.Remove("Banana");
            Console.WriteLine("Após remoção:");
            foreach (var fruta in frutas)
            {
                Console.WriteLine(fruta);
            }
        }
    }

3. Usando Dictionary

O Dictionary permite que você armazene dados em pares chave-valor. Aqui está um exemplo de uso:

using System;
    using System.Collections.Generic;

    class Program
    {
        static void Main()
        {
            Dictionary idades = new Dictionary
            {
                { "Alice", 30 },
                { "Bob", 25 },
                { "Carlos", 35 }
            };

            // Acessar um valor usando a chave
            Console.WriteLine($"Idade de Alice: {idades["Alice"]}");

            // Iterar sobre o dicionário
            foreach (var item in idades)
            {
                Console.WriteLine($"{item.Key}: {item.Value} anos");
            }
        }
    }

4. Introdução ao LINQ

LINQ é uma poderosa ferramenta que permite realizar consultas em coleções de maneira semelhante ao SQL. Com LINQ, você pode filtrar, ordenar e agrupar dados facilmente. Aqui está um exemplo básico:

using System;
    using System.Collections.Generic;
    using System.Linq;

    class Program
    {
        static void Main()
        {
            List numeros = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

            // Usando LINQ para filtrar números pares
            var numerosPares = from n in numeros
                               where n % 2 == 0
                               select n;

            Console.WriteLine("Números pares:");
            foreach (var num in numerosPares)
            {
                Console.WriteLine(num);
            }
        }
    }

5. Métodos de Extensão LINQ

Além da sintaxe de consulta, LINQ também oferece métodos de extensão que podem ser usados diretamente nas coleções. Aqui está um exemplo usando Where e Select:

using System;
    using System.Collections.Generic;
    using System.Linq;

    class Program
    {
        static void Main()
        {
            List frutas = new List { "Maçã", "Banana", "Laranja", "Uva" };

            // Usando métodos de extensão para filtrar e projetar
            var frutasComA = frutas.Where(f => f.StartsWith("M")).Select(f => f.ToUpper());

            Console.WriteLine("Frutas que começam com 'M':");
            foreach (var fruta in frutasComA)
            {
                Console.WriteLine(fruta);
            }
        }
    }

6. Conclusão

Manipular dados em C# usando coleções e LINQ permite que você trabalhe de forma eficiente e intuitiva. As coleções oferecem diferentes maneiras de armazenar e gerenciar dados, enquanto o LINQ proporciona uma poderosa linguagem de consulta para manipulação de dados. Ao dominar essas ferramentas, você poderá criar aplicações mais robustas e eficazes.