0
下記の2つの注文方法に違いはありますか?他のものよりも優れていますか?2つの可能なOrderBy
List<int> nums = new List<int>{ 5, 7, 6, 15, 1, 3 };
var sort1 = nums.OrderByDescending(i => i);
var sort2 = nums.OrderBy(i => -i);
下記の2つの注文方法に違いはありますか?他のものよりも優れていますか?2つの可能なOrderBy
List<int> nums = new List<int>{ 5, 7, 6, 15, 1, 3 };
var sort1 = nums.OrderByDescending(i => i);
var sort2 = nums.OrderBy(i => -i);
リストにint.MinValue
が含まれていると、コーナーケースで異なる結果が生じることがあります。
List<int> nums = new List<int> { int.MinValue, 5, 7, 6, 15, 1, 3 };
sort1
を試してみてくださいしかし
sort2
が-2147483648, 15, 7, 6, 5, 3, 1
で、15, 7, 6, 5, 3, 1, -2147483648
です。
int a = int.MinValue;
if (a == -a)
Console.WriteLine("a == -a");
プリントa == -a
:
理由は、オーバーフローです。
「どうすればいい?もっと早く?少ないメモリ使用量? CPU使用量は少ないですか?最初のものは、あなたが期待していることがより明白です。 –
はい、そういった点です。 – NotADeveloper
あなたは1つを選ぶ必要があります。今、答えの正しさを判断するための客観的基準がないため、あなたの質問は「意見に基づいて」表示されます。また、これらのパフォーマンス面を自分でテストすることもできます。孤立して、最初のものは高速ですが、より多くのCPUを必要とするかもしれません。実際のアプリケーションでは、実際のデータでは、2番目の方が高速ですが、より多くのメモリが必要になる可能性があります。あなたの質問から2番目の質問を削除することをお勧めします。 –