📅  最后修改于: 2023-12-03 14:53:25.707000             🧑  作者: Mango
字典(Dictionary)是 C# 中一种常用的数据结构,用于存储键值对。它提供了高效的查找和插入操作,可以根据键快速定位对应的值。泛型类(Generic Class)是具有泛型参数的类,它们提供了一种在编译时指定类型的机制,使得程序更加灵活和可重用。
在 C# 中,字典是通过内置的 System.Collections.Generic.Dictionary<TKey, TValue>
类实现的,而泛型类则是通过在定义类时使用类型参数实现的。
// 创建并初始化字典
Dictionary<string, int> dict = new Dictionary<string, int>()
{
{ "apple", 1 },
{ "banana", 2 },
{ "orange", 3 }
};
// 添加新的键值对
dict.Add("grape", 4);
// 使用索引器访问字典中的值
int value = dict["banana"];
// 遍历字典的键值对
foreach (KeyValuePair<string, int> pair in dict)
{
string key = pair.Key;
int value = pair.Value;
// 处理键值对
}
// 遍历字典的键
foreach (string key in dict.Keys)
{
// 处理键
}
// 遍历字典的值
foreach (int value in dict.Values)
{
// 处理值
}
// 判断字典中是否包含指定的键
bool containsKey = dict.ContainsKey("apple");
// 通过键查找对应的值
bool success = dict.TryGetValue("orange", out int value);
// 删除指定的键值对
bool removed = dict.Remove("banana");
// 清空字典
dict.Clear();
public class GenericClass<T>
{
private T value;
public GenericClass(T value)
{
this.value = value;
}
public T GetValue()
{
return value;
}
}
// 使用泛型类
GenericClass<int> intClass = new GenericClass<int>(10);
int intValue = intClass.GetValue();
GenericClass<string> stringClass = new GenericClass<string>("Hello");
string stringValue = stringClass.GetValue();
public interface IComparable<T>
{
int CompareTo(T other);
}
public class ComparableClass<T> where T : IComparable<T>
{
public bool IsGreater(T a, T b)
{
return a.CompareTo(b) > 0;
}
}
ComparableClass<int> intComparer = new ComparableClass<int>();
bool isGreater = intComparer.IsGreater(5, 3);
ComparableClass<string> stringComparer = new ComparableClass<string>();
isGreater = stringComparer.IsGreater("world", "hello");
通过使用字典和泛型类,你可以在 C# 中更方便地对键值对和类型进行操作和管理。字典提供了快速查找和插入的功能,而泛型类则使得类在编译时可接受多种参数类型,提高代码的灵活性和可重用性。在实际开发中,掌握字典和泛型类的基本用法,能够提高程序的效率和可维护性。
参考资料: