日期:2014-05-18  浏览次数:20835 次

关于实体的循环取值的问题,因扰了好久了!
现在项目中有一个实体类A 实体类中的有20个对象,分别是,a1,a2,a3,a4......a20现在想循环取值不知怎么样能把a后面的数字进行循环,达到的效果是这样:
for(int i=1;i<=20;i++)
{
  string strValue = A.a和i的组合例如(a1,a2...a20);
}
不知“A.a和i的组合例如(a1,a2...a20)”这个地方该如何组合才能得到值。
高手请指点下啊,本人小菜菜,这个问题困扰了好长时间了。

------解决方案--------------------
C# code
public class MiniHashtable
    {
        struct StructNameValue
        {
            public Object itemName;
            public Object itemValue;
            public void SetValue(Object objName, Object objValue)
            {
                itemName = objName;
                itemValue = objValue;
            }
            
        }
        private ArrayList m_alNV;
        public MiniHashtable()
        {
            m_alNV = new ArrayList();
        }
       
        public void Add(Object objName, Object objValue)
        {
            StructNameValue snvItem = new StructNameValue();
            snvItem.SetValue(objName, objValue);
            m_alNV.Add(snvItem);
        }
        
        public Object this[Object objName]
        {
            get
            {
                for (int i = 0; i < m_alNV.Count; i++)
                {
                    StructNameValue snvItem = (StructNameValue)m_alNV[i];
                    if (snvItem.itemName.Equals(objName))
                        return snvItem.itemValue;
                }
                return null;
            }
        }
        public Object this[int iIndex]
        {
            get
            {
                if (iIndex < m_alNV.Count)
                {
                    StructNameValue snvItem = (StructNameValue)m_alNV[iIndex];
                    return snvItem.itemValue;
                }
                else
                {
                    return null;
                }
            } 
        }
        public Object Name(int iIndex)
        {
            if (iIndex < m_alNV.Count)
            {
                StructNameValue snvItem = (StructNameValue)m_alNV[iIndex];
                return snvItem.itemName;
            }
            else
            {
                return null;
            }
        }
        public int Length
        {
            get
            {
                return m_alNV.Count;
            }
        }
        public void Clear()
        {
            m_alNV.Clear();
        }
    }

------解决方案--------------------
1:
string strValue = A.a和i的组合例如(a1,a2...a20); 

for(int i=1;i<=20;i++)
string strValue="A.a"+i.toString();

2:
更好的方法,建立一个object型的List或者ArrayList,把你的对象全放进去,
要是知道个数用for循环遍历,如果不知道个数就用foreach实现遍历