C#でMath.NET Numericsを使用する(統計計算編2)

前回の続き。

前回のコードを見て多くの方が「何これ超手続きイケテナイ」あるいは「対リスト操作なのになんでメソッドチェーンできないんですかっ!」と思われていることでしょう。

そんな皆さんに朗報です。宣言的な書き方、拡張メソッドでの使用が用意されています。

まず、宣言的な書き方ですが、実際には前回のStatisiticsクラスと等価ではないものの、ほぼ同様の機能を持ったDescriptiveStatisticsクラスが用意されています。しかしそのまんまなクラス名です。

以下はコード例。

という風に宣言的に記述できます。ただ、Statisticには無い関数がこちらには存在したり、こちらには無い関数がStatisticクラスには存在したりするので、ドキュメントで違いを確認しておきましょう。

皆さんがメソッドチェーンを愛してやまないのは知っています。

それなので、Statisticクラスには前回紹介した関数と同じ内容の拡張メソッドが用意されています。

上にあるようにOrderStatisticのように拡張メソッドが用意されていない場合もありますので、注意が必要です。

ということで、ちょっと注意点はあるものの、Math.NET Numericsではだいぶモダンなコードの書き方出来るようになっています。

全体コードは以下の通りです。

※通常本サイトで公開されるソースコードライセンスはApache License v2.0ですが、上コードについてはMITライセンスとします。

上のサンプルコードはGitHubにて公開しています。
https://github.com/ishisaka/MathNetSample

コメントを残す