【发布时间】:2017-09-14 11:08:08
【问题描述】:
假设我有一个从 1 到 100 的库存槽位,如何从该范围内找到第一个空槽位?
首先,我正在考虑使用 Array.FindIndex,但我被困在这里。
var InventorySlot = (from i in db.InventoryModel where i.userId == 1 select i.slot).ToArray();
int index = Array.FindIndex(InventorySlot, item => item == null );
但这会造成
- InventorySlot[0] = 1
- InventorySlot[1] = 3
- InventorySlot[2] = 4
那么如何创建这样的?
- InventorySlot[1] = x
- InventorySlot[3] = x
- InventorySlot[4] = x
也许我可以使用 Array.FindIndex 来定位空数组?我需要的索引变量是 2(数组中的第一个空数)
【问题讨论】:
-
where i.SlotId == 1的 linq 查询永远不会返回i为空的行。为什么你认为InventorySlot[2]是或应该是null? -
@GSerg,这取决于 linq 查询中选择的内容。上面的代码没有选择。
-
抱歉,linq 是韩语混音,所以你们可能无法轻松理解,所以我只是将其更改为更易于理解。现在假设 linq 可以工作。
-
你可能想要一个 Dictionary 而不是数组。
-
我认为您需要添加一些类型 -
index或i.slot的类型是什么?
标签: c# arrays performance linq