Entity Framework を使用してデータベースからデータを取得しています。
結果は、Search TextBox に入力された値によってフィルタリングされます。
var searchKey = this.TextBoxSearch.Text;
var products = this.databaseManager.Products.Where(x => x.Name.Contains(searchKey)).Select(x => x.Name);
次に、結果がアルファベット順にソートされます。
products = products.OrderBy(x => x);
ここで、結果を次のように並べ替えたいと思います。先頭に検索キーを含む結果は、テキスト内の別の場所に検索キーを含む結果の前に表示されます。
例:
ユーザーが「iP」と入力する と、フィルタリングされた結果は次のようになります。
iPhone 4S、iPhone 5、All in one iP Phone……
もちろん通常の場合はAll in one iP phoneがリストの最初の項目です。結果はアルファベット順にソートされるためです。しかし、私の場合。ユーザーの 検索キーは優勢でなければなりません。
これは、C# Linq [.NET 4.5] または SQL Server を使用して可能ですか? これが SQL クエリで実行できる場合も同様です。