I have the following C# expression

```
var orderedMatches = matches.OrderBy((t1, t2) => t1.Item1 - t2.Item1).ToList();

```

And am trying to translate to VB with Option Strict On, most translators produce something like below

```
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()

```

Or just below and neither one compiles. 

```
Dim orderedMatches As List(Of Tuple(Of Integer, String)) = matches.OrderBy(Function(t1, t2) t1.Item1 - t2.Item1).ToList()

```

I have tried multiple converters and also setting Option Strict Off and setting T1 and T2 to Object.
The usual error is

```
BC36532 Nested function does not have the same signature as delegate 'Func(Of Tuple(Of Integer, String), Object)'

```

OrderBy is defined as

```
Public Shared Function OrderBy(Of TSource, TKey)(source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey)) As IOrderedEnumerable(Of TSource)

```

or

```
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)

```

I need to code to compile with errors preferably with Option Strict On