Каков самый быстрый способ вычитания элементов длинного массива?
У меня долгое время
Dim LongArray As Long() = {1595741111714190885, 2681354977222731062, 3897343441765742102, 1813043105221908777, 2970433094069856569, ...}
Я хочу вычесть каждый пункт из следующего пункта.
Dim DiffArray As New List(Of Long) For i As Integer = 0 To LongArray.Count - 1 Dim Diff As Long = LongArray(i + 1) - LongArray(i) DiffArray.Add(Diff) Next
Но это слишком медленно.
Что я уже пробовал:
НА СЛЕДУЮЩИЙ
Dim LongArray As Long() = {1595741111714190885, 2681354977222731062, 3897343441765742102, 1813043105221908777, 2970433094069856569} Dim DiffArray As New List(Of Long) For i As Integer = 0 To LongArray.Count - 1 Dim Diff As Long = LongArray(i + 1) - LongArray(i) DiffArray.Add(Diff) Next
LINQ
Dim DiffArray2 = (From x In LongArray Let nextindex = LongArray.ToList.IndexOf(x) + 1 Let nextelement = LongArray.ToList.ElementAt(If(nextindex = LongArray.ToList.Count, nextindex - 1, nextindex)) Select nextelement - x).ToList()
Patrice T
Что именно ты пытаешься сделать ?
Ваш код выполняет не только вычитание.