gpt4 book ai didi

c# - 所有数组槽都包含最后一个结果

转载 作者:行者123 更新时间:2023-11-30 14:44:50 25 4
gpt4 key购买 nike

我很确定以前有人问过这个问题,但我不知道要搜索什么:

我想用我在 lambda 表达式中找到的内容填充一个数组。我这样做

IEnumerable<CapOrderTimeSlot>[] dummyDates = new IEnumerable<CapOrderTimeSlot>[DayCount];

for (int i=0; i< DayCount; i++)
{
dummyDates[i] = OrderSlots.Where(os => os.ComputedStartDate == FirstDate.AddDays(i));
}

问题是数组中的每个项目最终都包含相同的项目(可能是循环中的最后一个结果)。

如何避免这种情况?

最佳答案

问题在于此代码将表达式保存在每个数组元素中,而不是“物化”集合中。同时,由于关闭,所有保存的表达式都“链接”到 i 的相同值。这就是您获得最后一个值的原因。

改成这样:

for (int i=0; i< DayCount; i++)
{
dummyDates[i] = OrderSlots.Where(os => os.ComputedStartDate == FirstDate.AddDays(i)).ToArray();
}

关于c# - 所有数组槽都包含最后一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56985131/

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