gpt4 book ai didi

c# - 如何让 SingleOrDefault 通过引用从列表中返回对象?

转载 作者:太空宇宙 更新时间:2023-11-03 11:33:50 25 4
gpt4 key购买 nike

考虑这些代码行:

  //prodProdGroup is a list within the itm object that I need to search. The items
//within the list are of type ProductionCostCalcHelper. I need to find one
//of the ProductionCostCalcHelper records in the list, calculate its total dollar value
//and assign it the value

ProductionCostCalcHelper prodGroupItm = itm.prodProdGroup.SingleOrDefault(f => f.MAST_PROJ.Trim() == laborItm.MAST_PROJ.Trim());
ProductionCostCalcHelper prodGroupItm2 = itm.prodProdGroup.SingleOrDefault(f => f.MAST_PROJ.Trim() == laborItm.MAST_PROJ.Trim());

if (prodGroupItm != null)
{
prodGroupItm.TOTAL_DOLLAR = avgDollarsPerHour * prodGroupItm.HOURS;
}

我假设 SingleOrDefault 方法会通过引用返回对象,但事实并非如此。更改 ProdGroupItm 的 TOTAL_DOLLAR 数量后,ProdGroupItm2 保持不变,证明它们没有引用列表中的内容。为什么是这样?有没有办法更新列表中对象的值?

最佳答案

如果您的 ProductionCostCalcHelper 类型是可变的 struct,就会发生这种情况。
不要那样做mutable structs are evil .

每次传递 struct 时,整个值都会复制到传递给它的对象中。

改用类。

关于c# - 如何让 SingleOrDefault 通过引用从列表中返回对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6932004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com