C# - 泛型:字典(AKA Hashtable)

在c#中,字典与哈希表是一样的。
口述记录有点像数组,您可以其中自定义默认索引编号,使其更有意义,下面是一个示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dictionary
{
    class Program
    {
        static void Main(string[] args)
        {
			// 我们创建一个空字典 CountriesAndCapitals
			// 索引,是一个字符串,主值也是一个字符串

			Dictionary<string, string=> CountriesAndCapitals = new Dictionary<string, string=>();

			// 将项目添加到字典中
			CountriesAndCapitals.Add("England","London");
			CountriesAndCapitals.Add("France","Paris");
			CountriesAndCapitals.Add("Italy","Rome");

			Console.WriteLine(CountriesAndCapitals["Italy"]);
		}
    }
}

字典非常强大,它经常被用来创建一个字典,其中键是string,但值本身实际上是一个自定义对象,要实例化这种类型的对象,我们需要:

Dictionary {Dictionary’s Name} = new Dictionary();

现在常见的做法是创建一个自定义类,我们将使用它创建填充字典所需的自定义对象。一个(静态)方法(由主程序触发),该方法依次实例化dictionary对象,然后该方法实例化自定义类中的许多对象,并将它们与键一起添加到dictionary中。最后,该方法将字典返回给它的调用者,调用者将在字典变量中捕获它。
下面是一个实际的例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dictionary
{
    class Program
    {
        static void Main(string[] args)
        {

            // 在这里,我们调用CountryStat类的(静态)GetCountryListInfo方法,
			// 以便生成字典、填充字典,然后返回字典:
            var RetrievedCountryInfo = CountryStat.GetCountryListInfo();

            Console.WriteLine
			(
				"England has a population of {0} and it’s official language is {1}. It’s capital city is called {2}.",
				RetrievedCountryInfo["England"].Population,
				RetrievedCountryInfo["England"].
				Language,RetrievedCountryInfo["England"].Capital
			);
        }
    }

    public class CountryStat
    {

        public string Capital { get; set; }
        public int Population { get; set; }
        public string Language { get; set; }

        public CountryStat(string Capital, int Population, string Language)
        {
            this.Capital = Capital;
            this.Population = Population;
            this.Language = Language;
        }

        // 我们实例化字典,并向字典中添加条目
        public static Dictionary<string, CountryStat=> GetCountryListInfo()
		{
			// 我们创建将填充的空字典: 
			Dictionary<string, CountryStat=> DictionaryOfCountries = new Dictionary<string, CountryStat=>();

			// 我们创建要添加到字典的第一个对象: 
			CountryStat EnglandObject = new CountryStat("London", 60000000, "English");
			// 将此对象添加到字典
			DictionaryOfCountries.Add("England",EnglandObject);

			// 我们创建要添加到字典的下一个对象:
			CountryStat FranceObject = new CountryStat("Paris", 90000000, "French");
			// 将此对象添加到字典:
			DictionaryOfCountries.Add("France",FranceObject);

			// 创建要添加到词典的下一个对象:
			CountryStat RussiaObject = new CountryStat("Moscow", 180000000, "Russian");
			// 将此对象添加到字典:
			DictionaryOfCountries.Add("Russia",RussiaObject);

			// 将填充的字典返回给调用者:
			return DictionaryOfCountries;
		}
    }
}
日期:2020-07-07 20:54:26 来源:oir作者:oir