Итак, у меня есть эта функция, которая принимает данные и заказывает пользователей двумя столбцами. (Место и OrderCount)Порядок столбцов в datatable
Function DetermineBestUser(ByVal usertable As DataTable)
Dim bestchoice As DataRow()
For u = 0 To usertable.Rows.Count - 1
If Not DoesProcessorNeedOrders(usertable.Rows(u).Item("UserName"), usertable.Rows(u).Item("Amount")) Then
usertable.Rows(u).Delete()
End If
Next
bestchoice = usertable.Select("", "Rank ASC, OrderCount DESC")
If IsDBNull(usertable) Then
Console.WriteLine("No user is qualified for this order at this moment")
End If
Return bestchoice(0)(0).ToString
End Function
Проблема заключается в том, что иногда эта функция работает корректно и дает мне пользователю высокого ранга (1 или 2) и LOWEST OrderCount (0 - 30+). Однако иногда он не возвращает правильного человека. Единственное, что я видел, это исправление, это изменение «Ordercount DESC» на «OrderCount ASC»; однако это изменение работает только для этого конкретного порядка, а затем возвращается к возвращению не того человека.
У меня есть несколько тестовых прогонов, которые будут показывать это более подробно: R1 & R2 = ранг 1 или 2/"OrderCount"
Rank ASC, Ordercount ASC
#1
dane-R2/12
jerm-R1/15
tulsa-R1/5
---picks Jerm (should pick tulsa)
#2
Dane-R2/14
Jerm-R2/15
Kate- R2/15
---picks Dane
#3
Dane-R2/15
Jerm-R2/5
Kate-R2/5
---picks dane (should pick Jerm or Kate)
Rank ASC, Ordercount DESC
#1
dane-R2/12
jerm-R1/15
tulsa-R1/5
---picks Tulsa
#2
Dane-R2/14
Jerm-R2/15
Kate- R2/15
---picks Jerm (should pick Dane)
#3
Dane-R2/15
Jerm-R2/5
Kate-R2/5
---picks Jerm
Wehre являются переменными 'username, amount' decl? –
О, я просто упростил их. Я хватаю их за стол. Я отредактирую сообщение. – MaylorTaylor
Возможно ли, что OrderCount является текстовым значением? При сортировке текста (лексический сорт) 15 меньше 5, но он выглядит символом по символу и возвращает результат при первом различии. –