c#始めたばかりの初心者です。
現在、for文で書いてあるところを出来るだけLinqで書きかえようとしているところです。
もともと
c#
1public bool test(int[] array){ 2 for (int i = 0; i < array.Length; i++) 3 { 4 if (array[i] > 0) return false; 5 } 6 return true; 7}
このような関数がありました。
引数には要素数40弱の0~4のintが入っている配列が渡されます。
これを
c#
1return !array.Where(i=>i>0).ToList().Any();
このように書きかえました。
一応期待している真偽値が返ってくるのですが、引数の配列は最初のほうに0じゃない数が入っていることも多く、このLinqの書き方だと最後まで必ずチェックしてから空かどうか判定しているので、元のfor文より処理速度が遅いんじゃないかと思っています。
そこで、
- 気にするほど処理速度に差はないのか
- 途中returnと同じ処理をLinqで書こうと思ったらどう書けばいいのか
お教え頂ければ幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/20 14:57