【发布时间】:2012-03-03 08:18:39
【问题描述】:
我有一个结构 TableRow 和一个这样的结构的数组 table:
table = new TableRow[10];
现在我想查找和操作数组中结构之一的内容。
我使用 Array.Find 搜索正确的数组元素:
var tr = Array.Find( table, tRow => tRow.color == 'red' );
tr.count++;
问题是结构是值类型,因此 Find 方法返回我想要操作的结构的副本。更改此副本不会更改数组中的结构。
我似乎找不到任何方法来指示 Find 方法通过引用返回结构。
【问题讨论】:
-
你能显示 TableRow 结构体吗?需要自定义结构类型的情况非常罕见,如果其总字段大小超过 16 字节,请考虑将其转换为类
-
…或者如果任何字段在初始化后需要更改。
标签: c# arrays struct pass-by-reference