sách gpt4 ăn đã đi

c# - 在 LINQ 中使用字符串作为字段名

In lại 作者:太空狗 更新时间:2023-10-29 17:33:23 24 4
mua khóa gpt4 giày nike

看下面的代码。我想用参数 cánh đồng 中收到的字段名称替换 USERNAME。此方法必须能够在多个字段上进行一些搜索。

Cảm ơn

public void Searching(string field, string stringToSearch)
{
var res =
from user in _dataContext.USERs where
user.USERNAME.Contains(stringToSearch)
select new
{
Id = user.ID,
Username = user.USERNAME
};

}

câu trả lời hay nhất

你需要忘记匿名类型,也许使用 Tuple反而;但是:怎么样:

IQueryable source = // YOUR SOURCE HERE
// in-memory dummy example:
// source = new[] {
// new Foo {Id = 1, Bar = "abc"},
// new Foo {Id = 2, Bar = "def"}
// }.AsQueryable();

string field = "Bar";
string stringToSearch = "d";
var param = Expression.Parameter(typeof (Foo), "x");
var predicate = Expression.Lambda<>>(
Expression.Call(
Expression.PropertyOrField(param, field),
"Contains", null, Expression.Constant(stringToSearch)
), param);
var projection = Expression.Lambda<>>>(
Expression.Call(typeof(Tuple), "Create", new[] {typeof(int), typeof(string)},
Expression.PropertyOrField(param, "Id"),
Expression.PropertyOrField(param, field)), param);
Tuple[] data = source.Where(predicate).Select(projection).ToArray();

关于c# - 在 LINQ 中使用字符串作为字段名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11204817/

24 4 0
Đề xuất bài viết: c# - 同一集合中的不同泛型 T
Đề xuất bài viết: c# - Monitor.Enter 和 Monitor.Exit 在不同的线程中
Đề xuất bài viết: Angular 6 : Service is undefined
Đề xuất bài viết: c# - DotNetZip 保存到流
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress