это - c# fast array reverse



Скопировать массив назад? Array.Copy? (3)

В одном из ваших комментариев:

В настоящее время мы вытаскиваем один результат и каждый раз записываем его в базу данных

Существует большая разница между использованием цикла for для итерации назад по List<T> и записи записей в базу данных по одному за раз. Первое прекрасно; никто не одобряет его.

Почему бы просто не повторить сначала - заполнить массив - а затем отправить этот массив в базу данных, все заполненные?

var myArray = new T[numItemsYouWantToSend];

int arrayIndex = 0;
for (int i = myList.Count - 1; arrayIndex < myArray.Length; --i) {
    if (i < 0) break;
    myArray[arrayIndex++] = myList[i];
}

UpdateDatabase(myArray);

https://ffff65535.com

У меня есть List<T> который я хочу, чтобы иметь возможность копировать в массив назад, то есть начинать с List.Count и копировать, возможно, 5 элементов, начиная с конца списка и прокладывая путь назад. Я мог бы сделать это с помощью простого обратного цикла; однако, вероятно, существует более быстрый / более эффективный способ сделать это, поэтому я подумал, что должен спросить. Могу ли я использовать Array.Copy ?

Первоначально я использовал Queue как это появилось в нужном порядке, но мне нужно сразу же вырезать несколько элементов в массив, и я подумал, что список будет быстрее.


Вы можете сделать это любым количеством способов, но самый быстрый способ - получить элементы точно так, как вы. Вы можете использовать Array.Reverse, Array.Copy и т. Д., Или вы можете использовать методы LINQ и расширения, и оба являются допустимыми альтернативами, но они не должны быть быстрее.


Это невозможно сделать быстрее, чем простой цикл.





reverse