「LINQ」によるポスターは、クエリ・理解の構文の代わりに、ドットシンタックス(それ以外の場合は、他の回答で十分)を望むという解釈に基づいてこれを変更する:
var query =
from i in list
group i by i.Number into gj
select gj.OrderBy(x => x.Percentage).First();
をしかし、これはまだ使用しています注文のための多くのドット構文。どちらの機能と同等になります:あなたが最後に.First()
コールが気に入らない場合、それはどちらかがLINQ言語変換内の溶液または溶液、あなたを持っていない挑戦になるだろう
var query =
from i in list
group i by i.Number into gj
select
(from i in gj
orderby i.Percentage
select i).First();
IMHOのドットシンタックスがこの問題を解決するクリーンな解決策にはならないでしょう。クエリの内包表記は、多くの場合、物事を簡単にすることができますが、この場合には、私は、ドット構文を好む:
var query =
list.GroupBy(i => i.Number)
.Select(gj => gj.OrderBy(i => i.Percentage).First());
gj.OrderBy(...).First()
部分はもっと-LINQスタイルMinBy操作を実現(Jon Skeet's postを参照)
x.OrderByDescending(X => x.Pcentcentage)は、最も大きな数字である –
@ F.Aquinoありがとうございます。私は提出し、それを代わりに 'OrderBy'に変更した直後にそれを捕まえました – JaredPar
それは修正される前にそれをupvoteすることはできませんでした。私はこれが最も洗練されたソリューションだと思いますが、著者がlinqを求めていました(そして私は人々がIEnumerable拡張を混同していることを知っています)。 –