表示要迭代的数组或集合中的数据

本文关键字:集合 数据 数组 迭代 表示 | 更新日期: 2023-09-27 18:13:39

非常基本的问题…我有记录

| fname | lname | designation | comment |
| a     | aa    | aaa         | aaaa    |
| b     | bb    | bbb         | bbbb    |
| c     | cc    | ccc         | cccc    |

我需要在循环中迭代所有这些…一种方法是,我创建一个类,并使其对象的数组,以便我可以遍历。这样的

class Person
{
    string fname {set; get;}
    string lname {set; get;}
    string designation {set; get;}
    string comment {set; get;}
}
Person [] person = new Person[3];
for(int x = 0; x < 3; x++)
{
   person[x].fname = "asd";
}

有没有其他地方我可以创建字符串数组或一些集合,我不需要创建一个类。

表示要迭代的数组或集合中的数据

c#匿名类型可能是您的选择。

var v = new { Amount = 108, Message = "Hello" };
Console.WriteLine(v.Amount + v.Message);

您可以使用元组—尽管使用类有更多好处,因为它适当地抽象了'Person'信息。

您也可以使用Dictionary类:

List<Dictionary<string, string>> records = new List<Dictionary<string, string>>();
records.Add(new Dictionary<string, string>());
records[0]["fname"] = "name";

在静态类型语言中,这就是为数据对象定义新类的方法(通常作为POCO)。

在其他一些正确处理元组的静态类型语言中——比如f#——我会说你可以直接使用元组。但Tuple在c#中只是一个固定的东西,使你的代码丑陋和难以理解(e.t item1是什么?)。

或者你可以通过使用ExpandoObject或更好的ElasticObject来实现完全的动态!因为我认为你是带着动态编程背景来学习c#的,我认为你会喜欢的。但是我不建议你使用这个。因为它与静态类型语言的设计目的相反