gpt4 book ai didi

c# - 在 LINQ 中调用适当类属性的动态变量

转载 作者:行者123 更新时间:2023-11-30 23:19:42 25 4
gpt4 key购买 nike

有没有办法将下面的两种方法组合成一个动态方法,根据用户输入调用 LINQ where 子句中的适当属性?我想过做类似的事情

var prop = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(name.ToLower()));

然后在 LINQ x => x.{prop} == name 中做类似的事情 不确定这样的语法是否存在

public void FilterByName(string name)
{
var data = new InfoCollection().Data;
var result = data.Where(x => x.State == name)
Console.WriteLine(result);
}

public void FilterByCar(string car)
{
var data = new InfoCollection().Data;
var result = data.Where(x=> x.Car == car)
Console.WriteLine(result);
}

switch(searchByString)
{
case "name":
FilterByName(name)
break;

case "car":
FilterByCar(car)
break;

defualt:
break;
}

最佳答案

尝试这样的事情

public void Filter(string column, string value)
{
var data = new InfoCollection().Data;

//get the column to filter
PropertyInfo property = data[0].GetType().GetProperty(column);

//filter getting dinamically the column
var result = data.Where(x => property.GetValue(x, null) == value);

Console.WriteLine(result);
}

关于c# - 在 LINQ 中调用适当类属性的动态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40138013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com