表示要迭代的数组或集合中的数据
本文关键字:集合 数据 数组 迭代 表示 | 更新日期: 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#的,我认为你会喜欢的。但是我不建议你使用这个。因为它与静态类型语言的设计目的相反