5

我正在尝试使用 JQgrid 的 Web 服务实现在具有自定义列名的列表中搜索自定义元素,但我没有想法,我将不胜感激。

我不能在这里复制我的代码,但是,例如,我有一个实体,例如:

public class Test
{
    public int ID {get; set;}
    public string Name {get; set;}
    public string Nationality {get; set;}
}

我创建了一个函数来返回这个类的列表:

public static List <Test> getList()
{
    List<Test> testList = new List<Test>();
    Test testList1 = new Test();

    testList1.ID = 123;
    testList1.Name = "asd";
    testList1.Nationality = "qwe";

    testList.Add(testList1);
    return testList;
}

从查询字符串中我得到了 searchField 和 searchString,我将这些值存储在字符串 searchField 和 searchString 中。

我想要一些类似于这个功能的东西(我知道它错了,但我想要那个功能):

list=testList.Where(x=>x.searchField.Contains(searchString));

我对获取列表或任何东西没有任何问题,但我只想要类似的东西。

4

2 回答 2

3

您可以使用Reflection

list = testList.Where(x => (x.GetType()
              .GetProperty(searchField)
              .GetValue(x) as string).Contains(searchString)    
     );
于 2012-10-10T07:50:28.120 回答
3

您可以像下面这样实现它。

if(searchField == "ID")
{
   testList = testList.Where(x => x.ID == searchString);
}
else if (searchField == "Name")
{
   testList = testList.Where(x => x.Name.Contains(searchString);
}
else if (searchField == "Nationality")
{
   testList = testList.Where(x => x.Nationality.Contains(searchString);
}
于 2012-10-10T07:56:52.633 回答