私のテストケースのシナリオは、検索テキストボックスと検索結果のグリッドに関するものです。
現在、以下を使用して、最初の列のみを検索します。
foreach (GridColumn s in columns)
{
data = data.Where(string.Format("{0}.Contains(@0)", s.PropertyName), searchValue);
break;
}
すでにお気づきのように、breakステートメントを削除すると、 foreach
ループの間にOR
ステートメントがないため、結果が返されません。
Linq.Dynamic.Core
して複数の列で単一の値を検索するにはどうすればよいですか?
System.Linq.Dynamic.Coreを使用すると、次のようなコードを使用できます。
var xx = new [] { "ax", "bx", "cy", "dz" };
var columns = new[] { "x", "y" };
string query = string.Join(" or ", columns.Select(c => $"it.Contains(\"{c}\")"));
var result = xx.AsQueryable().Where(query);