我有一个这样的 struct :

public struct stuff
{
    public int ID;
    public int quan;
}

and want to to remove the product where ID is 1.
I'm trying this currently:

prods.Remove(new stuff{ prodID = 1});

但它不起作用.

THANKS TO ALL

推荐答案

使用LINQ:

prods.Remove( prods.Single( s => s.ID == 1 ) );

也许你甚至想用SingleOrDefault()来判断元素是否存在...

EDIT:
Since stuff is a struct, SingleOrDefault() will not return null. But it will return default( stuff ), which will have an ID of 0. When you don't have an ID of 0 for your normal stuff-objects you can query for this ID:

var stuffToRemove = prods.SingleOrDefault( s => s.ID == 1 );
if( stuffToRemove.ID != 0 )
{
    prods.Remove( stuffToRemove );
}

.net相关问答推荐

MSBuild:CopyToOutputDirectory不会将本机DLL复制到输出

C#:如何构造异步/等待代码,其中许多请求是针对相同的、返回缓慢的数据发出的,这可以满足所有请求

在 C# 中生成随机小数

CurrentCulture、InvariantCulture、CurrentUICulture 和 InstalledUICulture 之间的区别

从 byte[] 创建 zip 文件

如何判断 IOException 是否为 Not-Enough-Disk-Space-Exception 类型?

MongoDB C# 驱动程序 - 忽略绑定字段

将屏幕捕获为位图

OpenCV的.Net(dotNet)包装器?

Linq查询分组并 Select 第一个项目

如何从 .net 中的数组类型获取数组项类型

从 List 到数组 T[] 的转换

如何根据默认样式创建样式?

从 C# 中的接口继承 XML 注释

SQLParameter 如何防止 SQL 注入?

具有不同身份验证标头的 HttpClient 单个实例

.NET Remoting 真的被弃用了吗?

在foreach循环中修改列表的最佳方法是什么?

在类型 c# 上切换大小写

多行 C# 插值字符串文字