Declare uma lista multidimensional em C#
-
Declare uma lista 2D com
List<List<T>>
emC#
-
Declare uma lista multidimensional com lista de classes em
C#
-
Declare uma lista multidimensional com lista de tuplas em
C#
Neste tutorial, discutiremos métodos para declarar uma lista multidimensional em C#.
Declare uma lista 2D com List<List<T>>
em C#
Infelizmente, não existe um método interno para declarar uma lista multidimensional em C#. Portanto, para atingir esse objetivo, temos que contar com algumas abordagens definidas pelo usuário. Podemos declarar uma lista de listas com a notação List<List<T>>
em C#, onde T
especifica o tipo de variáveis dentro da lista. O exemplo de código a seguir nos mostra como podemos declarar uma lista 2D com a notação List<List<T>>
em C#.
using System;
using System.Collections.Generic;
namespace multidimensional_list {
class Program {
static void Main(string[] args) {
List<List<string>> Person = new List<List<string>>();
for (int i = 0; i < 3; i++) {
List<string> Data = new List<string>();
Data.Add("Person ");
Data.Add("Description ");
Person.Add(Data);
}
foreach (var list in Person) {
foreach (var element in list) {
Console.Write(element);
}
Console.WriteLine();
}
}
}
Resultado:
Person Description Person Description Person Description
Declaramos uma lista 2D Person
de variáveis de string com a notação List<List<string>>
em C#. Para inserir dados na lista, temos que armazenar os dados em outra lista de variáveis string
e, em seguida, adicionar esse objeto à lista Person
com a função Person.Add()
. Produzimos a lista com um loop aninhado. A desvantagem desse método é que ele só funciona para arrays 2D e só podemos ter elementos de 1 tipo de dados.
Declare uma lista multidimensional com lista de classes em C#
Se quisermos criar uma lista de vários tipos de dados, podemos declarar uma lista de objetos de classe em C#. Como sabemos, uma classe pode conter várias variáveis de diferentes tipos de dados. O exemplo de código a seguir nos mostra como podemos declarar uma lista 2D criando uma lista de objetos em C#.
using System;
using System.Collections.Generic;
namespace multidimensional_list {
public class Person {
public string Name { get; set; }
public string Description { get; set; }
}
class Program {
static void Main(string[] args) {
List<Person> People = new List<Person>();
for (int i = 0; i < 3; i++) {
Person p = new Person();
p.Name = "Person ";
p.Description = "Description ";
People.Add(p);
}
foreach (var obj in People) {
Console.WriteLine(obj.Name);
Console.WriteLine(obj.Description);
}
}
}
Resultado:
Person Description Person Description Person Description
Declaramos uma lista 2D People
criando uma lista da classe Person
em C#. Para inserir dados na lista, temos que armazenar os dados em um objeto da classe Person
e, em seguida, adicionar esse objeto à lista People
com a função People.Add()
. Com essa abordagem, podemos ter vários elementos de diferentes tipos de dados na lista.
Declare uma lista multidimensional com lista de tuplas em C#
Se quisermos usar vários tipos de dados em nossa lista, mas não quisermos criar uma classe separada para armazenar todas as variáveis, também podemos declarar uma lista de tuplas. Podemos declarar uma lista de tuplas com a notação List<(T1, T2)>
em C#, onde T1
e T2
são os tipos de dados do primeiro e segundo elemento da tupla, respectivamente.
O exemplo de código a seguir nos mostra como declarar uma lista multidimensional com uma lista de tuplas em C#.
using System;
using System.Collections.Generic;
namespace multidimensional_list {
class Program {
static void Main(string[] args) {
List<(string, string)> Person = new List<(string, string)>();
for (int i = 0; i < 3; i++) {
Person.Add(("Person ", "Description "));
}
foreach (var list in Person) {
Console.WriteLine(list);
}
}
}
Resultado:
(Person, Description)(Person, Description)(Person, Description)
Declaramos uma lista de tuplas Person
com a notação List<(string, string)>
em C#. Inserimos dados na lista Person
na forma de tuplas e exibimos com um loop foreach
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn