2016-11-05 7 views
1

に私はこの2つのクラスがあります:あなたは私がlist<Candidate>のリストを持って見ることができるようにリターン最大リストEntity FrameworkのC#の

List<List<Candidate>> lstCandidates = 
        deserializedProduct.results.Select(i=>i.candidates).ToList(); 

:私はこのクエリを持って

public class Result 
{ 
    public string plate { get; set; } 
    public double confidence { get; set; } 
    public int matches_template { get; set; } 
    public int plate_index { get; set; } 
    public string region { get; set; } 
    public int region_confidence { get; set; } 
    public long processing_time_ms { get; set; } 
    public int requested_topn { get; set; } 
    public List<Coordinate> coordinates { get; set; } 
    public List<Candidate> candidates { get; set; } 
} 

public class Candidate 
{ 
    public string plate { get; set; } 
    public double confidence { get; set; } 
    public int matches_template { get; set; } 
} 

を。すべての候補者はplateconfidenceです。私はlstCandidatesに最大の自信を持ってプレート番号が必要です。どのようにこの価値を得ることができますか?

+0

まだ試しましたか?私は喜んでお手伝いしますが、あなたが試したことを示す必要がありますので、是正するのを手伝ってください。また、最大の信頼度の値を探しているか、最大の信頼度の値を持つ候補のアイテムを探していますか? –

+0

@GiladGreenあなたはforeachソリューション、伝統的なソリューションを使いたいと思っています。しかし、まだコードはありません。もっと良い解決法があるかも知りたいのですが。 –

+0

@GiladGreen最大確度でプレート番号が必要です –

答えて

2

です。

var candidate = deserializedProduct 
        .results 
        .SelectMany(i=>i.candidates) // Flatten the collection 
        .OrderByDescending(p => p.confidence) // Order by descending on confidence property 
        .First(); // Take the max 
1

実際にはconfidence値でアイテムを注文すると、最初の値を取得し、その後、内側のリストを平らにする

deserializedProduct.results 
    .SelectMany(k => k.candidates) 
    .OrderByDescending(k => k.confidence) 
    .Select(k=>k.plate) 
    .FirstOrDefault(); 
+0

OrderByDescending(k => k.confidence )構文エラー –

+0

@EhsanAkbarどのコレクションでリストを適用しますか?私の編集を参照してください。 –

2

使用SelectMany非常に簡単です。

var result = deserializedProduct.results.SelectMany(item => item.candidates) //Flatten 
             .OrderByDescending(item => item.confidence) //Order 
             .FirstOrDefault()?.plate; // Safely take property of first 

?. C#6.0 Nullの伝播機能を使用すると、その後、SelectManyOrderByを使用してFirstメソッドを使用することができます

関連する問題