如何从列表中删除特定的动态ExpandoObject?

时间:2014-10-23 16:20:06

标签: c# list

现在,我想从列表ExpandedObject中删除menu_items,其中mi_obj_num等于1而不循环遍历整个List。有办法吗?

List<ExpandoObject> menu_items = new List<ExpandoObject>();
dynamic mi = new ExpandoObject();
mi.character = "Hello";
mi.mi_obj_nm = 1;
menu_items.Add(mi);
mi.character = "World";
mi.mi_obj_nm = 2;
menu_items.Add(mi);

2 个答案:

答案 0 :(得分:2)

你能做的最好的事情就是使用RemoveAll。在内部它当然会在列表中有一个循环,这是不可避免的,尽管你不需要自己输出任何循环。

答案 1 :(得分:0)

如果您不想编写循环,请使用:menu_items.RemoveAll(eo => eo.mi_obj_nm == 1)

如果您想直接访问,请使用与List不同的数据结构,例如Dictionary并使用mi_obj_nm作为密钥。