Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从数组中查找特定的数字?_C#_Linq - Fatal编程技术网

C# 如何从数组中查找特定的数字?

C# 如何从数组中查找特定的数字?,c#,linq,C#,Linq,我这里有一些代码,用于从数组中只查找左前一个小数字 public void Test() { int[] numbers = { 121, 124, 131, 135, 219, 287, 361, 367, 382, 420 }; var onlyfirstNumbersLessThanGiven = numbers.TakeWhile(n => n < 135); Console.WriteLine("First numbers less than ");

我这里有一些代码,用于从数组中只查找左前一个小数字

public void Test() {
    int[] numbers = { 121, 124, 131, 135, 219, 287, 361, 367, 382, 420 };
    var onlyfirstNumbersLessThanGiven = numbers.TakeWhile(n => n < 135);
    Console.WriteLine("First numbers less than ");
    foreach (var n in onlyfirstNumbersLessThanGiven)
    {
        Console.WriteLine(n);
    } 
}
如何从上面的数组中仅查找131?请帮帮我这个怎么样

有序数组:

numbers.LastOrDefault(x => x < 135);
numbers.Where(x => x < 135).Max();
无序数组:

numbers.LastOrDefault(x => x < 135);
numbers.Where(x => x < 135).Max();
这个怎么样

有序数组:

numbers.LastOrDefault(x => x < 135);
numbers.Where(x => x < 135).Max();
无序数组:

numbers.LastOrDefault(x => x < 135);
numbers.Where(x => x < 135).Max();

找到数字本身,因为你知道你想要的数字,你不需要任何范围

numbers.Where(x => x == 131);

找到数字本身,因为你知道你想要的数字,你不需要任何范围

numbers.Where(x => x == 131);

尽管雷南的答案完全正确,为什么不直接使用First、edited或TakeWhile和Last呢

e、 g

为了与您的情况相匹配:

public void Test() {
    int[] numbers = { 121, 124, 131, 135, 219, 287, 361, 367, 382, 420 };
    var onlyfirstNumbersLessThanGiven = numbers.TakeWhile(n => n < 135).Last();
    Console.WriteLine("First numbers less than ");
    Console.WriteLine(onlyfirstNumbersLessThanGiven);
}
有一些限制:假定数组是排序的,并且必须按升序排列


感谢伊万·斯托夫指出了我的错误

尽管雷南的答案完全正确,为什么不使用“第一个”、“编辑”或“最后一个”呢

e、 g

为了与您的情况相匹配:

public void Test() {
    int[] numbers = { 121, 124, 131, 135, 219, 287, 361, 367, 382, 420 };
    var onlyfirstNumbersLessThanGiven = numbers.TakeWhile(n => n < 135).Last();
    Console.WriteLine("First numbers less than ");
    Console.WriteLine(onlyfirstNumbersLessThanGiven);
}
有一些限制:假定数组是排序的,并且必须按升序排列

感谢伊万·斯托夫指出我的错误

这个例子有助于澄清我的错误

公共空隙试验

{

int[]数字={121、324、431、135、119、287、361、367、382、420}

LTG的var=数字,其中x=>x<121.Max; Console.WriteLineFirst最大编号:

{ Console.WriteLineOFNLTG

}

}

这个例子有助于澄清问题

公共空隙试验

{

int[]数字={121、324、431、135、119、287、361、367、382、420}

LTG的var=数字,其中x=>x<121.Max; Console.WriteLineFirst最大编号:

{ Console.WriteLineOFNLTG

}

}


在您的示例中,Firstn=>n<135将返回121,而OP期望131个好捕获,我现在正在修改答案。在您的示例中,Firstn=>n<135将返回121,而OP期望131个好捕获,我现在正在修改答案。为什么这是可接受的答案?这正是我提出的解决方案为什么这是公认的答案?这正是我提出的解决方案