1
このLINQクエリは、存在する場合は完全一致を返し、存在しない場合は "startswith"結果を返すようにしています。今すぐ両方を返します。LINQ to DataTable結果のフィルタリング
例
SearchParam = "Mundt氏" 結果= Mundt氏、マーク・ | Mundt、Chris | Mundth、ロリ
public static DataTable SearchPerson(string SearhParam)
{
var context = new ConnectDataContext(Properties.Settings.Default.ConnectConnectionString);
var myQuery = (from person in context.tblPersons
where person.LastName.StartsWith(SearhParam) || person.LastName == SearhParam
orderby person.LastName
select new { person.PersonID, person.LastName, person.FirstName, person.SSN });
var dataTable = myQuery.CopyLinqToDataTable();
return dataTable;
}
データベースに2ヒットするのはおそらくより速いでしょう。これは、一致が存在すると完了したためです。メモリ内でフィルタリングする場合は、O(n)検索だけでまだ未だ作業があるかどうかを知る必要があります。 –
yですが、それはシナリオごとに大きく異なります。人の量がかなり少ない場合、往復の遅延は長くなります。それは、私はそれを汗をかくことはない、[ビジネスを挿入する]がうまくいく場合、システムに多くの人がいるだろう:) – eglasius
私のシナリオはローカルデータベースを照会するので、私は複数の呼び出しでうまくいく。 ありがとう! –