摘要
C# 中的 Dictionary 集合是一種高效的數(shù)據(jù)結(jié)構(gòu),它可以用來存儲鍵值對。在 C# 中,使用 Dictionary 存儲數(shù)據(jù)非常方便,可以快速地查找和訪問數(shù)據(jù)。在使用 Dictionary 時,需要定義鍵值對的類型,這樣才能添加正確的元素到 Dictionary 中。
Dictionary 集合可以用泛型類型來定義,因此可以使用不同的數(shù)據(jù)類型來作為鍵或值。這樣可以讓我們更靈活地使用 Dictionary 來存儲和操作數(shù)據(jù)。
在創(chuàng)建 Dictionary 時,需要定義鍵值對的類型。這些類型可以是基本數(shù)據(jù)類型(如 int、double、bool)或者是復(fù)雜數(shù)據(jù)類型(如 List、Dictionary 等)。
除了添加和訪問鍵值對,Dictionary 集合還提供了許多其他有用的方法,例如 Removing、Count、Clear 等。使用這些方法,我們可以更靈活地管理和操作 Dictionary 集合中的數(shù)據(jù)。
總之,C# 中的 Dictionary 集合是一種非常強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),它可以幫助我們快速、高效地存儲和訪問數(shù)據(jù)。通過定義鍵值對的類型,我們可以靈活地使用 Dictionary 來存儲各種類型的數(shù)據(jù),并使用各種方法來操作這些數(shù)據(jù)。
正文
Dictionary的特性:
從一組鍵(Key)到一組值(Value)的映射,每一個添加項都是由一個值及其相關(guān)連的鍵組成
任何鍵都必須是唯一的
鍵不能為空引用null(VB中的Nothing),若值為引用類型,則可以為空值
Key和Value可以是任何類型
常見屬性和方法
Comparer | 獲取用于確定字典中的鍵是否相等的 IEqualityComparer |
---|
Count | 獲取包含在 Dictionary中的鍵/值對的數(shù)目 |
Item | 獲取或設(shè)置與指定的鍵相關(guān)聯(lián)的值 |
Keys | 獲取包含 Dictionary中的鍵的集合 |
Values | 獲取包含 Dictionary中的值的集合 |
Add | 將指定的鍵和值添加到字典中 |
Clear | 從 Dictionary中移除所有的鍵和值 |
ContainsKey | 確定 Dictionary是否包含指定的鍵 |
ContainsValue | 確定 Dictionary是否包含特定值 |
GetEnumerator | 返回循環(huán)訪問 Dictionary的枚舉數(shù) |
GetType | 獲取當(dāng)前實例的 Type (從 Object 繼承) |
Remove | 從 Dictionary中移除所指定的鍵的值 |
ToString | 返回表示當(dāng)前 Object的 String (從 Object 繼承) |
TryGetValue | 獲取與指定的鍵相關(guān)聯(lián)的值 |
初使化
Dictionary<int, string> dic = new Dictionary<int, string>();
添加元素
private void btnAdd_Click(object sender, EventArgs e)
{
dic.Add(1, "張飛");
dic.Add(2, "劉備");
dic.Add(3, "關(guān)羽");
dic.Add(4, "曹操");
dic.Add(5, "孫權(quán)");
}
通過Key查找元素
private void btnKeySearch_Click(object sender, EventArgs e)
{
var key = int.Parse(txtKey.Text);
if (dic.ContainsKey(key))
{
MessageBox.Show(dic[key]);
}
}
遍歷元素
private void btnForAll_Click(object sender, EventArgs e)
{
foreach (var item in dic)
{
lstAll.Items.Add(item.Key + " " + item.Value);
}
}
僅遍歷鍵 Keys 屬性
private void btnKey_Click(object sender, EventArgs e)
{
foreach (var item in dic.Keys)
{
MessageBox.Show(item.ToString());
}
}
僅遍歷Values
private void btnValue_Click(object sender, EventArgs e)
{
foreach (var item in dic.Values)
{
MessageBox.Show(item.ToString());
}
}
通過Key刪除
private void btnDelete_Click(object sender, EventArgs e)
{
dic.Remove(1);//通過Key刪除
}
該文章在 2024/2/19 18:09:07 編輯過