C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。
Q&A
解決済
2回答
3289閲覧
総合スコア44
0グッド
0クリップ
投稿2015/08/03 13:32
0
Linqのアベレージを使うと、 例えば以下のようなコードで平均を取れると思うのですが
C#1var avg = new [] { 1f, 2f, 3f }.Average();
C#
1var avg = new [] { 1f, 2f, 3f }.Average();
ベクトルの中点をこの構文で取ることはできないでしょうか。
C#1var points = GetPoints(); 2var chuten = points.Average(); 3 4List<Vector2> GetPoints(){ ... }
1var points = GetPoints(); 2var chuten = points.Average(); 3 4List<Vector2> GetPoints(){ ... }
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答2件
自己解決
Enumerableには以下の関数がありません。
C#1public static <TSource> Average(this IEnumerable<TSource> source);
1public static <TSource> Average(this IEnumerable<TSource> source);
従って、以下の関数を定義する必要があります。
C#1public static class EnumerableExtension 2{ 3 public static Vector2 Average(this IEnumerable<Vector2> source) 4 { 5 return new Vector2(source.Average(e => e.x), source.Average(e => e.y)); 6 } 7}
1public static class EnumerableExtension 2{ 3 public static Vector2 Average(this IEnumerable<Vector2> source) 4 { 5 return new Vector2(source.Average(e => e.x), source.Average(e => e.y)); 6 } 7}
投稿2015/08/03 18:27
C#にはそれほど詳しくないので正しい自信はないのですが, List<Vector2>を継承したクラスを作ってAverage()メソッドを定義すれば良いのではないでしょうか.
投稿2015/08/03 17:42
総合スコア751
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
任意のクラスのAverage()を取る方法
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。