質問

移動平均などの問題を処理するC#コードに取り組んでいます。この場合、List / IEnumerableを取得して、連続するデータのチャンクを処理する必要があります。F#Seqモジュールには、シーケンスを取り込んで連続する要素のチャンクのシーケンスを返すウィンドウ処理された優れた関数があります。

C#には、LINQと同等の機能がすぐに使用できますか?

役に立ちましたか?

解決

C#からいつでもSeqModule.Windowedを呼び出すことができ、FSharp.Core.Dllを参照する必要があります。関数名もわずかに壊れているため、Windowedではなくwindowedを呼び出して、C#の大文字の規則に適合させます

他のヒント

いつでも自分でロールする(またはF#コアから翻訳する)ことができます: ジェネラコディセタグプレ

私の試みは次のようになります。F#を直接呼び出すよりもはるかに低速です(John Palmerが提案)。未チェックの配列を使用しているF#が原因だと思います。: ジェネラコディセタグプレ

Reactive Extensions には、これを支援するいくつかの演算子があります。バッファとウィンドウ。実験ブランチにあるインタラクティブ拡張機能は、これらとかなりの数の追加演算子をLINQに追加します。

ジョンパーマーの答えは素晴らしいです。これは彼の答えに基づいた例です。 ジェネラコディセタグプレ

ToArray()を最後に追加したい(または追加しない)場合があります。ToArrayがないと、戻り値の型はF#の世界(シーケンス)のままです。ToArrayを使用すると、C#の世界(配列)に戻ります。

ここに画像の説明を入力してください

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top