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

本文关键字:动态 ExpandedObject 删除 列表 | 更新日期: 2023-09-27 18:27:46

现在我想从列表menu_items中删除ExpandedObject,其中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);

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

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

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

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