我创建了一个继承自List的类:现在我想在类本身中迭代类的元素,如果它满足某些条件(例如它的属性名称),则返回该对象:
protected class myList : List<Object>
{
getElement(string name)
{
??? LOOP AND IF CONDITION ???
return element;
}
}
你能帮忙吗?感谢
答案 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*/);