Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从列表中删除特定的动态展开对象?_C#_List - Fatal编程技术网

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
的一个实例方法。你说得对。我认为这是一种扩展方法。更新。