将类设置为 IEnumerable 并获取类型

本文关键字:获取 取类型 IEnumerable 设置 | 更新日期: 2023-09-27 18:30:30

一直在搜索和尝试不同的事情,但似乎无法使其正常工作。
所以,这是基础知识...

namespace Model
{
  [Serializable]
  public class SomeMDL : IEnumerable<string>
  {
      public int ID { get; set; }
      public int Volumne { get; set; }
      public int Size { get; set; }
  }
    public IEnumerator<string> GetEnumerator()
    {
        yield return ID.ToString();
        yield return Volume.ToString();
        yield return Size.ToString();
    }
    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
    {
        return this.GetEnumerator();
    }
}

然后调用类:

        Model.SomeMDL mdl = new Model.SomeMDL();
        mdl.ID = 1;
        mdl.Volume = 2;
        mdl.Size = 2;
        string myVar;            
        foreach (string item in mdl)
        {                
            //myVar = item.GetType().ToString();
            //myVar = item.GetEnumerator().GetType().Name.ToString();
            //myVar = item.GetEnumerator().GetType().FullName.ToString();
            //myVar = item.GetEnumerator().GetType().DeclaringType.FullName.ToString(); //null ref
            myVar= item.ToString(); //gets the value             
        }

我正在寻找的是一种不仅带回价值的方法,这是项目。ToString(),但我需要知道它正在读取哪个公共 int。是 ID、卷还是大小?
需要返回类型(ID、卷或大小)的字符串。

谢谢

将类设置为 IEnumerable 并获取类型

除非我在这里错过了您的代码,否则您似乎误用/误解了IEnumerable接口的基本概念。 IEnumerable用于表示一组相同类型的对象,然后可以对其进行迭代。您所做的只是生成类中的每个属性 - 有什么意义?如果您需要任何一个属性,为什么不正常访问它呢?你认为允许自己和他人盲目地迭代你的三个属性会得到什么?