У меня есть пустой массив из двадцати элементов.
Например, мы просто используем простой массив int
public int[] Integers = new int[20];
Тогда у меня есть база данных, в которой хранится множество элементов
public int[] Database = new int[] {
1, 2, 3, , ..., 1000
}
Я хотел бы поместить некоторые элементы из базы данных в мой массив
в Imperative, который я мог бы просто сделать:
// loop all my slots
for (int = 0; i < Integers.Length; i++) {
// If database index of i is empty, then done this loop
// correction: I'm putting null in case database type is not int
if(Database[i] == null) {
break;
}
// but when there's still something in database, fill it to current Integers[i]
else {
Integers[i] = Database[i]
}
}
Но я хотел сделать это в Linq, используя Select и ForEach, однако foreach не имеет индекса i.
Примечание: я делаю игровой слот инвентаря в игре, поэтому в моем интерфейсе можно было увидеть только двадцать предметов внутри персонажа ввремя, оно также включает в себя нумерацию страниц.В настоящее время я делаю:
for (int i = 0; i < _slots.Count; i++)
_slots[i].SetItem(i < InventoryItems.Count ? InventoryItems[i] : null);
с setItem в качестве побочных эффектов;