Как сделать список с 3 столбцами в C#? - PullRequest
3 голосов
/ 12 февраля 2020

Как сделать List с 3 столбцами в c#.

Каждый столбец должен иметь разные type.

Теперь я попробовал это.

List<int> list1 = new List<int>();
List<decimal> list2 = new List<decimal>();
List<string> list3 = new List<string>();

Как я могу объединить это в один List?

Чтобы прочитать его в одном for и получить к нему доступ.

Ответы [ 3 ]

7 голосов
/ 12 февраля 2020

Для этого можно создать List из кортежей , используя инициализатор списка

var list = new List<(int item, string data, decimal value)>
{
    (1, "test", 1.2m),
    (2, "test", 3.6m)
};

или for l oop

var list = new List<(int item, string data, decimal value)>();

foreach (var item in Enumerable.Range(1, 3)) 
    list.Add((item, $"data{item}", item));

И получить доступ к таким элементам

var item = list.FirstOrDefault();
var data = item.data;

Но имейте в виду, что именованные кортежи доступны начиная с C # 7

4 голосов
/ 12 февраля 2020

Вы можете создать свой собственный пользовательский класс с нужным свойством, а затем составить список, если он

    public class MyClass
    {
        public int ItemA { get; set; }
        public string ItemB { get; set; }
        public bool ItemC { get; set; }
    }

List<MyClass> myList = new List<MyClass>();

, и добавить элемент в класс, просто создав новый экземпляр класса. и добавьте его в список

MyClass myClass = new MyClass
{
    ItemA = 1,
    ItemB = "hello",
    ItemC = true
 };

 myList.Add(myClass);
1 голос
/ 12 февраля 2020

Если вы хотите создать список, содержащий три разные переменные, вы можете также рассмотреть возможность создания класса объектов, содержащего эти значения;

public class MyObject
{
   public string StringProperty { get; set; }
   public int IntegerProperty { get; set; }
   public decimal DecimalProperty { get; set; }
}

И затем создать список следующим образом:

List<MyObject> NewList = new List<MyObject>();

Затем вы можете добавить новые элементы к этому объекту, вызвав команду добавления в этом списке:

MyObject TempObject = new MyObject();
TempObject.StringProperty = "Foo";
TempObject.IntegerProperty = 2;
TempObject.DecimalProperty = 0.3;
NewList.Add(TempObject);

Если вы имеете в виду три отдельных типа в списке, обратитесь к тому, что сказал Павел кортежи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...