2016-10-14 6 views
0

私はLINQをよく使用しません。効率的でない方法を使用する効率的な方法があります。Linq匿名タイプ

私はアイテムのリストを持っています。それぞれを計算し、計算された最も小さい10進数(アイテムではなく、ノート番号)を返します。私はこのLINQを使用していますが、このシナリオでLINQを使用するのが最も効率的な方法かどうか疑問に思います。

var bestPrice = query.Select(x => new 
{ 
    Interest = CalcInterest(amount, term, x.ProductRate.Rate) 
}) 
.OrderBy(x => x.Interest) 
.FirstOrDefault(); 

ここで、「クエリ」はあらかじめ選択されたLINQリストであり、「CalcInterest」は数値の計算に使用される方法です。

このクエリは多く使用されるため、小さな利益は大きな勝利になります。

+0

投稿者: – MrVoid

+2

より効率的な方法に興味があれば、 'query'も提供する必要があります。希望の結果のタイプは何ですか? 「利息」とは何ですか?なぜ10進数が1つしか含まれていない場合、匿名型が必要ですか? –

+0

@TimSchmelter - クエリの内容は無関係です。商品レートフィールドを含む項目の一覧に過ぎません。私は匿名のタイプを必要としないように思えます。私はオープニング文とLINQ経験の欠如を参照します。 –

答えて

7

ここでは匿名型は必要ありません。これを試してみてください:

var bestPrice = query.Min(x => CalcInterest(amount, term, x.ProductRate.Rate)); 

編集:これで別の結果が得られました。あなたのコードはanon型を返します。これは、最も興味のあるオブジェクトを返します。関心データは保存されません。

いずれにしても、最小値を得るにはを使用してください。

+0

返事をありがとう - それは私が必要とする正確にあるようだ。 –

関連する問題