-5
-4.75
-4.5
-4.25
-4
-3.75
-3.5
-3.25
-3
-2.75
-2.5
-2.25
-2
-1.75
-1.5
-1.25
-1
-0.75
-0.5
-0.25
0
0.25
0.5
0.75
1
1.25
1.5
1.75
2
2.25
2.5
2.75
3
3.25
3.5
3.75
4
4.25
4.5
4.75
5
5.25
5.5
5.75
6
6.25
6.5
6.75
7
7.25
7.5
7.75
8
8.25
8.5
8.75
9
9.25
9.5
.....
40已知这些数字
我随便输入一个数怎么判断我输入的这个数字离以上哪个最近??

解决方案 »

  1.   


    void Main()
    {
    var list=new int[]{11,22,33,1,2,4,7,9};
    int x=20;
    var y=list.Select(s=>new{s,v=(s-x)}).OrderBy(m=>Math.Abs(m.v)).First().s;
    Console.WriteLine(y);  //22
    }
      

  2.   

    把上面的数据为数组,把数组里的数据全减去你输入的数后,取数组的Min()值
      

  3.   

    就行q107770540那样,用LinQ,选出差值,然后排序
      

  4.   

    就行q107770540那样,用LinQ,选出差值,然后排序