私はこのように見えるクラスをいくつか持っています(SOのために簡略化されています):
public class Result
{
List<Review> Reviews { get; set; }
}
public class Review
{
public string Name { get; set; }
public string Amount { get; set; }
}
したがって、最終的な結果は、レビューオブジェクトのリスト<>を持つ「結果」オブジェクトがあり、それぞれに名前と金額があります。「Name」プロパティは、このリスト内で1回以上複製できます。
名前が重複する複数のReviewオブジェクトがある「Reviews」プロパティがある場合、LINQを使用して、値が最も低い重複する名前の「Review」オブジェクトをリストから削除します(つまり、すべてのReviewオブジェクトを削除します)値が最も高いものを除いて、リストから)。
したがって、私のリストが次のようになっている場合:
Name Amount
----------------
A 2
B 3
C 1
A 1
B 4
Remove
リストでLINQ関数を使用して、最終結果が次のようになるようにします。
Name Amount
----------------
A 2
C 1
B 4
LINQを使用してこれを行う方法に関する提案はありますか?私も自分で解決策を探しています。自分で解決するよりも速いかどうかを確認するために、ここに投稿すると思いました。:)
これがあなたがそれをすることができる方法です:
var endResult = reviewList.OrderByDescending(e => e.Amount)
.GroupBy(e => e.Name)
.Select(g => g.First());
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加