📅  最后修改于: 2023-12-03 15:30:17.530000             🧑  作者: Mango
在 C# 中, StringDictionary
是一种非常有用的数据结构,它允许我们使用字符串索引来访问值。有时,我们需要获取 StringDictionary
中所有键的集合(不同于获取所有值的集合)。在本文中,我们将讨论如何在 StringDictionary
中获取键的集合。
方法1:使用 Keys
属性
StringDictionary
类中有一个名为 Keys
的属性,它返回一个包含 StringDictionary
中所有键的集合的 ICollection
。返回结果是无序的,因此我们需要使用 foreach
循环或其他方法进行迭代。
StringDictionary dict = new StringDictionary();
// 添加一些键值对
dict.Add("key1", "value1");
dict.Add("key2", "value2");
dict.Add("key3", "value3");
// 获取键的集合
ICollection keys = dict.Keys;
// 使用 foreach 循环迭代集合
foreach (string key in keys)
{
Console.WriteLine(key);
}
上述代码输出:
key2
key1
key3
方法2:使用 Cast<>
和 ToArray()
方法
我们可以使用 Cast<>
方法将 Keys
属性返回的 ICollection
转换为 IEnumerable<string>
,然后使用 ToArray()
方法将其转换为一个数组。
StringDictionary dict = new StringDictionary();
// 添加一些键值对
dict.Add("key1", "value1");
dict.Add("key2", "value2");
dict.Add("key3", "value3");
// 获取键的集合
string[] keys = dict.Keys.Cast<string>().ToArray();
// 输出数组
foreach (string key in keys)
{
Console.WriteLine(key);
}
上述代码输出:
key2
key1
key3
在本文中,我们介绍了两种在 StringDictionary
中获取键的集合的方法。如果我们只是需要一个无序的键的集合,那么使用 Keys
属性是最简单的方法。如果需要对集合进行其他操作,如排序或筛选,那么使用 IEnumerable<string>
和 ToArray()
方法将更加方便。