空白で区切られた一連の単語があります。その文字列をdictionary<string, int>
に分割して、各単語の頻度の数を、選択トップ3000で降順に並べ替える必要があります。辞書を周波数の数で並べ替えるトップ3000 c#
この操作を行う簡単な方法はありますか?ありがとう。
私が望むものを得るためにこのコードを修正したいと思います。
空白で区切られた一連の単語があります。その文字列をdictionary<string, int>
に分割して、各単語の頻度の数を、選択トップ3000で降順に並べ替える必要があります。辞書を周波数の数で並べ替えるトップ3000 c#
この操作を行う簡単な方法はありますか?ありがとう。
私が望むものを得るためにこのコードを修正したいと思います。
Split
とGroupBy
支援するOrderByDescending
とTake
とあなたが必要とする主な方法、以下のとおりです。
myString.Split(' ')
.GroupBy(x => x)
.OrderByDescending(g => g.Count())
.Take(3000)
.Select(g => g.Key)
をここからDictionary<string,int>
を取得するには、.ToDictionary(g => g.Key, g=> g.Count())
と.Select(g => g.Key)
を交換してください。
辞書に単語を保存したい –
@JoneMamni - どこに戻ってきますか?上記は、あなたが何を説明するのでしょうか。これを変数に代入すると、結果で必要なことを行えるようになります。 – Oded
辞書に戻る
スプリングボードが必要な場合:文字列を区切り文字で区切り、残りはLINQを使った1行のコードである 'System.String'メソッドがあります。 – Jon
@ Jon、私はそれぞれの単語数を見つけて、その数に基づいて上位300を降順で選択したいと思う。 –
あなたの問題をより良い方法で表現してください。 –