C#:多元素列表?(就像一个记录列表):如何最好地做到这一点?

Jon*_*ica 6 c#

我喜欢列表,因为它们非常易于使用和管理.但是,我需要一个包含多个元素的列表,比如记录.

我是C#的新手,非常感谢所有帮助!(Stackoverflow晃动!)

考虑一个单个元素列表的简单实用示例,它非常有用:

public static List<string> GetCities()
{
  List<string> cities = new List<string>();
  cities.Add("Istanbul");
  cities.Add("Athens");
  cities.Add("Sofia");
  return cities;
}
Run Code Online (Sandbox Code Playgroud)

如果我希望列表为每条记录都有两个属性,我该怎么做?(作为一个数组?)

例如,这个伪代码的真实代码是什么?:

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;
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Bro*_*ass 12

A List<T>可以保存任何类型的实例 - 因此您只需创建一个自定义类来保存所需的所有属性:

public class City
{
   public string Name {get;set;}
   public string Country {get;set;}
}

...

public List<City> GetCities()
{
   List<City> cities = new List<City>();
   cities.Add(new City() { Name = "Istanbul", Country = "Turkey" });
   return cities;
}
Run Code Online (Sandbox Code Playgroud)

  • Jonesome是C#的新手,所以我想提一下这个(正确的)答案也使用[自动实现的属性](http://msdn.microsoft.com/en-us/library/bb384054.aspx),非常方便.编辑:虽然他想要的东西似乎是一个`Country`类,它有一个`Name`和一个`List <string> Cities`(或者其他一些) (2认同)

小智 6

为什么没有人提到a Dictionary<>

我认为使用Dictionary会更容易。据我了解,OP 希望有两个相互关联的值,在本例中是一个国家及其首都。

Dictionary<string, string> capitals = new Dictionary<string, string>()
{
    {"Istanbul","Turkey"},
    {"Athens","Greece"},
    {"Sofia","Bulgaria"},
};
Run Code Online (Sandbox Code Playgroud)

要将“Key,Values”添加到您的字典中:

capitals.add("Lisbon, Portugal");
Run Code Online (Sandbox Code Playgroud)

添加到字典的其他可能方法

要迭代字典中的项目:

foreach(KeyValuePair<string, string> entry in capitals)
{
    // do something with entry.Value or entry.Key
}
Run Code Online (Sandbox Code Playgroud)

在 C# 中迭代​​字典的最佳方法是什么?

要编辑条目:

capital[Lisbon]= "..."
Run Code Online (Sandbox Code Playgroud)

尽管创建自己的类(或我猜的结构)是可行的,但如果目标是创建一个包含两个彼此相关的值的列表,那么字典会更简单。