C# 如何从列表中删除特定的动态展开对象?
现在我想从列表C# 如何从列表中删除特定的动态展开对象?,c#,list,C#,List,现在我想从列表菜单项中删除ExpandedObject,其中mi\u obj\u num等于1,而不在整个列表中循环。有没有办法做到这一点 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
菜单项中删除ExpandedObject
,其中mi\u obj\u num
等于1,而不在整个列表中循环。有没有办法做到这一点
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);
列表菜单_项=新建列表();
动态mi=新的ExpandooObject();
mi.character=“你好”;
mi.mi_obj_nm=1;
菜单项。添加(mi);
mi.character=“世界”;
mi.mi_obj_nm=2;
菜单项。添加(mi);
您能做的最好的事情就是使用RemoveAll
。在内部,当然会在列表中有一个循环,这是不可避免的,尽管您不需要自己键入任何循环。如果您不想编写循环,请使用:菜单项。RemoveAll(eo=>eo.mi_obj_nm==1)
如果您希望直接访问,请使用与列表不同的数据结构,例如字典
,并使用mi_obj_nm
作为密钥。删除所有
不是LINQ方法。这只是List
的一个实例方法。你说得对。我认为这是一种扩展方法。更新。