Nun*_*lha 1 c# list nested-lists
我需要一些帮助.
我正在尝试将信息存储在列表中.
例如,用户输入数字,年龄,地址和头发颜色......
我想在列表中创建列表来存储信息,如下所示:
[0] Number
----[0] Age
----------[0] Address
----------[1] Adrress
--------------[0] Hair Color
Run Code Online (Sandbox Code Playgroud)
如果有更好的方法,请帮助我!
列表中的列表我会很困惑,但如果它是更好的解决方案,我没有问题.
将逻辑分组数据存储为原始值数组并不是真正的方法.相反,用对象替换数组,只存储对象列表.在您的示例中,对象可以像以下一样简单:
class Person
{
public int Number { get; set; } // it's not clear what this value means
public int Age { get; set; }
public string Address { get; set; }
public string HairColor { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
您可以HairColor向此对象添加更多属性,逻辑,验证,强类型枚举(对于类似的东西)等.维护这个集合很容易:
var people = new List<Person>();
Run Code Online (Sandbox Code Playgroud)
使用这种方法您会立即注意到的一个主要好处是,Person可以更改结构,而无需更改任何存储Persons 的集合.您可以添加/更改/删除属性,它仍然只是一个List<Person>.您只需要更改使用您正在更改的组件的代码.
另一个关键的好处是你可以封装Person在这个类中定义a的所有逻辑,因此其他代码不需要担心它.因此,不必重新编写相同的验证逻辑(例如,始终确保Age是有效的正数,类似的东西),您可以将它写在对象上,并且它应用于任何地方.正如Eric Raymond曾经说过的那样,"智能数据结构和愚蠢的代码比其他方式更好."