フックワードとは、最初または最後に1文字追加して新しい単語を作ることができる単語です。
かなり大きな単語リスト (約 170k) があり、5 つのランダムなフック ワードを選択したいと考えています。問題は、私が使用している方法が非常に遅いことです。下記参照:
Random rnd = new Random();
var hookBases = (from aw in allWords //allWords is a List<string>
from aw2 in allWords
where aw2.Contains(aw)
&& aw2.Length == aw.Length + 1
&& aw[0] == 'c'
select aw).OrderBy(t => rnd.Next()).Take(5);
何かにアクセスしようとするhookBase
と、あきらめて殺す前に数分間スピンします。
私がこれをやろうとしている方法に明らかな間違いがある人はいますか? より効率的な方法に関する提案はありますか?