この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 3028|答える: 0

[出典] .NET/C#コレクション Any() または Count() の方が速い

[リンクをコピー]
掲載地 2023/06/28 19:34:31 | | | |
要件:最近、プロジェクトチームの同僚がデータカウント()を0>Any()に変更し、コレクション(IQuerybleクエリデータベースではなく)にデータがあるかどうかを判断し、なぜ変更したのか(最適化された)のか尋ねましたが、答えはありませんでした。

ベンチマークを使って、次のAny()とCount()のどちらが速いかを比較してください。

まずは結論から始めましょう(.NET Framworkで)。Count > Any() > Count().NET 6では、Count()とAny()のパフォーマンスは大きく変わりませんが、それでもデータが存在するかどうかを収集するには、Any()が推奨されます

テストコードは以下の通りです:


.NET Framework 4.8.1ベンチマークデータは以下の通りです:



.NET 6ベンチマークデータは以下の通りです:



.NET FramworkではAny() > Count()パフォーマンスだと言っていませんでしたか? なぜCount()はListより速いのですか? その理由は、Listの基礎となるCount()メソッドがCountフィールドを呼び出すためです。以下の図に示されています。




(終わり)





先の:.NET/C# メソッドパラメータ NULL null
次に:ThreadStatic、CallContext、HttpContextの違い ASP.NET
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com