次のようにソートされた辞書があります。
var sortedDict = (from entry in dd
orderby entry.Value descending select entry
).ToDictionary(pair => pair.Key, pair => pair.Value);
このソートされた辞書からトップ 10 を選択するにはどうすればよいですか?
次のようにソートされた辞書があります。
var sortedDict = (from entry in dd
orderby entry.Value descending select entry
).ToDictionary(pair => pair.Key, pair => pair.Value);
このソートされた辞書からトップ 10 を選択するにはどうすればよいですか?
クエリで降順について言及しているように、最後の 10 回のオカレンスが必要だと思います。もしそうなら
var sortedDict = (from entry in dd orderby entry.Value descending select entry)
.Take(10)
.ToDictionary(pair => pair.Key, pair => pair.Value) ;
var sortedDict = dd.OrderByDescending(entry=>entry.Value)
.Take(10)
.ToDictionary(pair=>pair.Key,pair=>pair.Value);
最初の 10 個が必要な場合は、削除するだけdescending
で問題なく動作します。
var sortedDict = (from entry in dd orderby entry.Value select entry)
.Take(10)
.ToDictionary(pair => pair.Key, pair => pair.Value) ;
var sortedDict = dd.OrderBy(entry=>entry.Value)
.Take(10)
.ToDictionary(pair=>pair.Key,pair=>pair.Value);
辞書を注文したので、最初の 10 個の結果を ing すると、次の 10 個が選択されdescending
ます。Take
TOP
var sortedDict = (from entry in dd
orderby entry.Value descending
select entry
).Take(10)
.ToDictionary(pair => pair.Key, pair => pair.Value);
Take(10)を使用するだけです
Take()メソッドを使用する必要があります。
var sortedDict = (
from entry in dd
orderby entry.Value descending
select entry)
.Take(10)
.ToDictionary(pair => pair.Key, pair => pair.Value);
var sortedDict = (from entry in dd orderby entry.Value descending select entry)
.Take(10).ToDictionary(pair => pair.Key, pair => pair.Value);
最初に 10 を取得してから辞書に変換すると、より効率的になります。その逆の場合は、最初にそれらすべてを辞書に変換してから、そこから 10 を取り出します。選択するリストが大きい場合、これは効率に影響します。