2016-09-13 15 views
1

配列から最初の小さい番号だけを見つけるためのコードがあります。配列から特定の番号を見つけるには?

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個だけを見つける方法はありますか?助けてください

+1

おかげでたくさん、ルナン。 – durg

答えて

0

を私のミスを指摘してイワンStoev

おかげでクリアするのに役立ちます。

公共ボイド試験()

{

INT []番号= {121、324、431、135、119、287、361、367、382、420}。

var OFNLTG = numbers.Where(x => x < 121).Max();
Console.WriteLine( "最初の最大番号:");

{ Console.WriteLine(OFNLTG);

}

}

+0

なぜこれが受け入れられる回答ですか?これはまさに私が提案した解決策です –

7

どうやってですか?

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

順不同配列:

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

はあなたがしたい番号を知っているので、あなたが任意の範囲を必要としない、番号自体を探す

は配列を命じました。

ルナンの答えは完全に正しいが
numbers.Where(x => x == 131); 
3

、なぜだけでなく、まず()、、編集または最終とTakeWhileを()()でしょうか?

int[] numbers = { 9, 34, 65, 92, 87, 435, 3, 54, 
        83, 23, 87, 435, 67, 12, 19 }; 

int first = numbers.First(number => number > 80); 
int firstSmaller = numbers.TakeWhile(number => number < 80).Last(); // returns 65 since its the first one smaller than 80 in the series 

Console.WriteLine(first); 

そして、あなたの状況でそれを一致させる:

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); 
} 

は制限があります:配列をソートすると想定され、かつ昇順でなければなりません。この例

+0

あなたの例で '最初(n => n <135)'はOPが期待している間に121を返します131 –

+0

良いキャッチ、私は今答えを修正しています。 –

関連する問題