質問: 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); ``` LinqPadの例: ![ここに画像の説明を入力してください