Hi sat,
Please take reference to the below code and correct your code.
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
List<int> list = new List<int> { 65, 62, 60, 56, 52, 50, 26, 25, 20, 06, 05, 02 };
int number = 23;
list.Sort();
int lower = 0, higher = 0;
int index = list.BinarySearch(number);
if (0 <= index)
{
lower = list[index + 1];
}
else
{
index = ~index;
lower = list[index - 1];
}
higher = list.OrderBy(x => Math.Abs(x - number)).ThenByDescending(x => x).First();
Response.Write(lower + " " + higher);
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim list As List(Of Integer) = New List(Of Integer) From {
65,
62,
60,
56,
52,
50,
26,
25,
20,
6,
5,
2
}
Dim number As Integer = 23
list.Sort()
Dim lower As Integer = 0, higher As Integer = 0
Dim index As Integer = list.BinarySearch(number)
If 0 <= index Then
lower = list(index + 1)
Else
index = Not index
lower = list(index - 1)
End If
higher = list.OrderBy(Function(x) Math.Abs(x - number)).ThenByDescending(Function(x) x).First()
Response.Write(lower & " " & higher)
End Sub
Output
20 25