У меня есть следующее выражение C #
var orderedMatches = matches.OrderBy((t1, t2) => t1.Item1 - t2.Item1).ToList();
И я пытаюсь перевести на VB с Option Strict On, большинство переводчиков выдают что-то вроде ниже
Dim orderedMatches As List(Of Tuple(Of Integer, String)) = matches.OrderBy(Function(t1 As Tuple(Of Integer, String), t2 As Object) t1.Item1 - t2.Item1).ToList()
Или чуть ниже и ниодин компилируется.
Dim orderedMatches As List(Of Tuple(Of Integer, String)) = matches.OrderBy(Function(t1, t2) t1.Item1 - t2.Item1).ToList()
Я попробовал несколько конвертеров, а также установил Option Strict Off и установил T1 и T2 на Object.Обычная ошибка:
BC36532 Nested function does not have the same signature as delegate 'Func(Of Tuple(Of Integer, String), Object)'
OrderBy определяется как
Public Shared Function OrderBy(Of TSource, TKey)(source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey)) As IOrderedEnumerable(Of TSource)
или
Public Shared Function OrderBy(Of TSource, TKey)(source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), comparer As IComparer(Of TKey)) As IOrderedEnumerable(Of TSource)
Мне нужно кодировать для компиляции с ошибками, желательно с Option Strict On