为了账号安全,请及时绑定邮箱和手机立即绑定

如何更新列表中的一个整数

如何更新列表中的一个整数

C#
繁星coding 2023-04-29 16:36:22
有没有办法更新列表中的一个整数。可以说我有一个列表,其中包含一些框中的剩余空间,我想更新它。我怎么能这样做:foreach (var itemToStore in items) {if (boxCapacities.Any(bc => bc >= itemToStore.Size())) {    var availableBox = boxCapacities.First(tc => (bc => bc >= itemToStore.Size());    availableBox -= itemToStore.Size();}}上面代码的问题是列表中有整数,它们是按值复制的,所以当我更新 availableBox 变量时,我没有更新列表中的变量。有没有一种优雅的方法可以解决这个问题,而无需创建一个新对象来封装整数?
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

正如 Ron Beyer 所说,使用 FindIndex 可以解决问题


var index = boxCapacities.FindIndex(bc => bc >= itemToStore.Size());

if (index != -1) {

    boxCapacities[index] -= itemToStore.Size();

}

如果它们更优雅或性能更好,我仍然愿意接受其他解决方案


查看完整回答
反对 回复 2023-04-29
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

可能更复杂,但只是为了探索您可以拥有的可能性


foreach (var itemToStore in items)

{

    var idx = boxCapacities.Select((x, i) => new {index=i,ok= (x>=itemToStore.Size())})

                           .FirstOrDefault(k => k.ok);

    if(idx != null)

        boxCapacities[idx.index] -= itemToStore.Size();

}


查看完整回答
反对 回复 2023-04-29
  • 2 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信