📜  字典和泛型类 c# (1)

📅  最后修改于: 2023-12-03 14:53:25.707000             🧑  作者: Mango

字典和泛型类(C#)

1. 介绍

字典(Dictionary)是 C# 中一种常用的数据结构,用于存储键值对。它提供了高效的查找和插入操作,可以根据键快速定位对应的值。泛型类(Generic Class)是具有泛型参数的类,它们提供了一种在编译时指定类型的机制,使得程序更加灵活和可重用。

在 C# 中,字典是通过内置的 System.Collections.Generic.Dictionary<TKey, TValue> 类实现的,而泛型类则是通过在定义类时使用类型参数实现的。

2. 字典的基本用法
2.1 创建和初始化字典
// 创建并初始化字典
Dictionary<string, int> dict = new Dictionary<string, int>()
{
    { "apple", 1 },
    { "banana", 2 },
    { "orange", 3 }
};

// 添加新的键值对
dict.Add("grape", 4);

// 使用索引器访问字典中的值
int value = dict["banana"];
2.2 遍历字典
// 遍历字典的键值对
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)
{
    // 处理值
}
2.3 查找和删除元素
// 判断字典中是否包含指定的键
bool containsKey = dict.ContainsKey("apple");

// 通过键查找对应的值
bool success = dict.TryGetValue("orange", out int value);

// 删除指定的键值对
bool removed = dict.Remove("banana");

// 清空字典
dict.Clear();
3. 泛型类的基本用法
3.1 定义泛型类
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();
3.2 泛型约束
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");
4. 总结

通过使用字典和泛型类,你可以在 C# 中更方便地对键值对和类型进行操作和管理。字典提供了快速查找和插入的功能,而泛型类则使得类在编译时可接受多种参数类型,提高代码的灵活性和可重用性。在实际开发中,掌握字典和泛型类的基本用法,能够提高程序的效率和可维护性。

参考资料: