ユーザーがIANA-Protocol Registryからプロトコルを簡単に選択できるようにするサービスを作成中です。
ご想像のとおり、レジストリで用語を検索するとhttp
、多くのヒットが表示されます。amt-soap-http
ユーザーが を選択する頻度はストレートよりもはるかに少ないのでhttp
、 で始まるものをすべて取り出してhttp
、それを残りの結果と連結することをお勧めします。
以下のラムダ式は、その思考プロセスの結果です。
var records = this._ianaRegistryService.GetAllLike(term).ToList();
var results = records.Where(r => r.Name.StartsWith(term))
.OrderBy(r => r.Name)
.Concat(records.Where(r => !r.Name.StartsWith(term))
.OrderBy(r => r.Name))
.Take(MaxResultSize);
残念ながら、必要以上に結果を反復しているように感じます。時期尚早の最適化に関する考慮事項はさておき、上記よりも効率的なラムダ式の組み合わせはありますか?