C#迭代类自己的元素

时间:2014-06-18 15:18:06

标签: c# class loops self

我创建了一个继承自List的类:现在我想在类本身中迭代类的元素,如果它满足某些条件(例如它的属性名称),则返回该对象:

protected class myList : List<Object> 
{
    getElement(string name)
    {
        ??? LOOP AND IF CONDITION ???

         return element;
    }

}
你能帮忙吗?感谢

4 个答案:

答案 0 :(得分:5)

您正在寻找foreach(var item in this)

答案 1 :(得分:3)

首先,我会尽量避免使用List<Object>Object的问题是,它需要转换。因此,它在运行时容易出错。

而是创建自己的类。 例如,一个包含名称的简单项目。

class Item
{
  public string Name { get; set; }
}

然后你就可以做到:

class myList : List<Item> 
{
    Item getItem(string name)
    {  
         foreach(var item in this)
         {
           if(item.Name==name) { return item; }
         }

         return null;
    }
}

答案 2 :(得分:1)

你需要更多代码来进行投射,但是:

    public Object GetElement(string name)
    {
        Object element = null;
        foreach (var item in this)
        {
            if (item.ToString() == name)
            {
                element = item;
                break;
            }
        }
        return element;
    }

答案 3 :(得分:0)

您不必重新发明轮子,只需使用LINQ。

mylist.First(element => /*criteria*/);