【问题标题】:How to make a List with 3 columns in C#?如何在 C# 中创建一个包含 3 列的列表?
【发布时间】:2020-05-28 02:29:55
【问题描述】:

如何在 C# 中创建一个有 3 列的List

每列必须有不同的type

现在我已经尝试过了。

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

我怎样才能把它合二为一List

为了在一个for中阅读它,并访问它。

【问题讨论】:

  • 列是什么意思?你试过什么?
  • 3 列是什么意思?列表 ?
  • 一个具有三个属性的已定义类型的 List 怎么样?
  • 你想创建一个3列的数据表吗??
  • 不清楚你想要什么。它是一个包含 3 个不同类型属性的对象列表。为此,您需要创建一个类,该类将保存这些属性,然后初始化该类型的 List。

标签: c# .net list types datatable


【解决方案1】:

您可以为此创建一个 Listtuples,使用列表初始化器

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

或使用for循环

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 开始可用

【讨论】:

  • @LopDev 是否​​回答了您的问题,您需要更多详细信息或信息吗?
  • @LopDev “它总是保留最后一个 itemObject 并用相同的方式填充所有以前的”请发布代码,听起来你有一个浅拷贝。
  • @LopDev with class 你必须每次在循环中创建一个新实例,然后再添加到列表中,例如var myClass = new MyClass();while 循环内,而不是之前
  • ItemsClass 实例必须在分配其属性var ItemsClass = new …. 之前创建(在循环内),否则您修改了同一个实例
  • @PavelAnikhouski,非常感谢!我已经忘记了这个...我将您的答案标记为答案,谢谢!
【解决方案2】:

如果您的意思是要创建一个包含三个不同变量的列表,您也可以考虑创建一个包含这些值的对象类;

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

然后像这样创建一个列表:

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

然后您可以通过在该列表上调用 add 命令向该对象添加新项目:

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

如果你的意思是一个列表中的三个单独的类型,那么请参考 Pavel 关于元组所说的内容。

【讨论】:

  • 如何使用while循环添加更多的项目?因为,我试过这个,这是一个不错的方法,但是当我通过 while 循环添加时,它总是保留最后一个 itemObject 并用相同的值填充所有以前的对象
  • @LopDev “它总是保留最后一个 itemObject 并用相同的方式填充所有以前的”请发布代码,听起来你有一个浅拷贝。
【解决方案3】:

你可以用你想要的属性创建你自己的自定义类,然后列出一个列表

    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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    相关资源
    最近更新 更多