在 C# 中,可以实现 foreach 遍历一个类的字典成员并获得字典 value 的类型,需要将该类实现 IEnumerable 接口,并在 GetEnumerator() 方法中返回一个实现了 IEnumerator 接口的自定义迭代器类。具体实现如下:

首先,在该类中定义一个字典成员,如下所示:

public class MyClass
{
    private Dictionary<string, MyObject> myDict = new Dictionary<string, MyObject>();

    public MyClass()
    {
        // 添加一些字典元素
        myDict.Add('key1', new MyObject());
        myDict.Add('key2', new MyObject());
        myDict.Add('key3', new MyObject());
    }

    // 实现 IEnumerable 接口
    public IEnumerator<MyObject> GetEnumerator()
    {
        foreach (var item in myDict.Values)
        {
            yield return item;
        }
    }
}

在 GetEnumerator() 方法中,使用 yield return 关键字返回字典 value 的类型 MyObject。这将返回一个实现了 IEnumerator 接口的自定义迭代器类,并且该迭代器的 Current 属性将返回 MyObject 类型。

接下来,在代码中使用 foreach 遍历该类的实例,如下所示:

MyClass myClass = new MyClass();

foreach (MyObject obj in myClass)
{
    // obj 为 MyObject 类型
    // 处理字典中的每个元素
}

在 foreach 循环中,使用 MyObject 类型作为迭代变量的类型,而不是 object 类型。这将使您能够访问字典中存储的 MyObject 类型的元素。

C# 使用 foreach 遍历类字典成员并获取特定类型

原文地址: https://www.cveoy.top/t/topic/oDEQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录