如何使类可迭代? [英] How do I make a class iterable?

查看:22
本文介绍了如何使类可迭代?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的课

public class csWordSimilarity
{
    public int irColumn1 = 0;
    public int irColumn2 = 0;
    public int irColumn3 = 0;
    public int irColumn4 = 0;
    public int irColumn5 = 0;
}

我想让这个类可以像下面这样使用

I want to make that class iterable to be used like the way below

foreach (int irVal in myVarWordSimilarity)
{

} 

myVarWordSimilaritycsWordSimilarity 类型.所以我想迭代所有公共 int 变量.我需要如何修改 csWordSimilarity 类以使其像上面那样可迭代.

myVarWordSimilarity is csWordSimilarity type. So I want to iterate all public int variables. How do I need to modify csWordSimilarity class for making it iterable like the way above.

推荐答案

您可以实现 IEnumerable 并让 GetEnumerator 覆盖使用 yield 声明

You can implement IEnumerable and have the GetEnumerator override return an "iterator" over the variables using the yield statement

class csWordSimilarity : IEnumerable<int>
{
    private int _var1 = 1;
    private int _var2 = 1;
    private int _var3 = 1;
    private int _var4 = 1;

    public IEnumerator<int> GetEnumerator()
    {
        yield return _var1;
        yield return _var2;
        yield return _var3;
        yield return _var4;
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

这篇关于如何使类可迭代?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆