2017-09-26 10 views
0

私はdictionaryです。値はlistの文字列です。そして、私はそれぞれlistの文字列の数で辞書を注文したいと思います。したがって、最初にkvpが印刷されるのは、listの要素の数が最も多いkvpです。C#list.countで辞書<string、list <string>>を注文するには?

私はこの回答をstackoverflowの別の質問の下で見ましたが、私は何か不足していると思います。

foreach (var kvp in teams.OrderBy(x => x.Value.Count)) 
+0

コードを投稿してください – maxspan

答えて

2

あなたは非常に近いですが、あなたは下降したいように聞こえる:

using System; 
using System.Linq; 
using System.Collections.Generic; 

public class Program 
{ 
    public static void Main() 
    { 
     var teams = new Dictionary<string, List<string>>(); 
     teams.Add("Short List", new List<string> {"One","Two"}); 
     teams.Add("Medium List", new List<string> {"One","Two", "Three"}); 
     teams.Add("Long List", new List<string> {"One","Two", "Three", "Four"}); 

     foreach (var kvp in teams.OrderByDescending(x => x.Value.Count)) 
     { 
      Console.WriteLine("Team {0} has {1} items.", kvp.Key, kvp.Value.Count); 
     } 
    } 
} 

出力:

Team Long List has 4 items. 
Team Medium List has 3 items. 
Team Short List has 2 items. 

.NET Fiddleでそれをチェックアウト。

関連する問題