C#: Multi element list? (Like a list of records): How best to do it?
我喜欢列表,因为它们很容易使用和管理。但是,我需要一个包含多个元素的列表,比如记录。
我是新来的C,感谢所有的帮助!(堆垛溢出岩石!)
考虑一下这个简单、有效的单元素列表示例,它非常有用:
1 2 3 4 5 6 7 8 | public static List<string> GetCities() { List<string> cities = new List<string>(); cities.Add("Istanbul"); cities.Add("Athens"); cities.Add("Sofia"); return cities; } |
如果我希望列表中每个记录有两个属性,我该怎么做?(作为数组?)
例如,这个伪代码的真正代码是什么?:
1 2 3 4 5 6 7 8 | public static List<string[2]> GetCities() { List<string> cities = new List<string>(); cities.Name,Country.Add("Istanbul","Turkey"); cities.Name,Country.Add("Athens","Greece"); cities.Name,Country.Add("Sofia","Bulgaria"); return cities; } |
谢谢您!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class City { public City(string name, string country) { Name = name; Country = country; } public string Name { get; private set; } public string Country { get; private set; } } public List<City> GetCities() { return new List<City>{ new City("Istanbul","Turkey"), new City("Athens","Greece"), new City("Sofia","Bulgaria") }; } |
如果您确实不需要一个列表,而且不太可能,那么您可以使返回类型
1 2 3 4 5 6 |
例如,如果你在土耳其找到第一个城市,或者第一个以字母I开头的城市,那么你就不必像在列表中那样实例化所有的城市。相反,第一个城市将被实例化和评估,并且只有在需要进一步评估的情况下,随后的城市对象才会被实例化。
对于动态操作,可以使用元组(在.NET 4.0中):
1 2 3 4 5 | List<Tuple<string,string>> myShinyList = new List<Tuple<string,string>> { Tuple.Create("Istanbul","Turkey"), Tuple.Create("Athens","Greece"), Tuple.Create("Sofia","Bulgaria") } |
为什么没有人提到一个
我想用字典比较容易。据我所知,OP希望有两个相互关联的值,在这种情况下,一个国家和它的资本。
[cc lang="csharp"]dictionary