zoukankan      html  css  js  c++  java
  • 今天遇到一个问题,linq语句的写法,查询动态字段

      public List<Location> getLocationList(int companyid, string searchValue, string searchField)
    {
    ...
     var dbLocList = from x in _dbLocList
                                where x.company_id == companyid 
                                and   x的searchField==searchValue //这里要查询的字段是变量
                                select x;           
    }
    and那一句怎么实现
     
    为list加一个扩展方法:
    using System.Reflection;

    public static class Extension
    {
    public static List<T> FinData<T>(this List<T> MyDataList, string CName, string CValue)
    {
    BindingFlags bindingFlags = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;
    PropertyInfo[] propertyInfos = typeof(T).GetProperties(bindingFlags);
    List<T> ResultList = new List<T>();
    foreach (PropertyInfo propertyInfo in propertyInfos)
    {
    if (propertyInfo.Name == CName)
    {
    MyDataList.ForEach(
    j =>
    {
    string re = propertyInfo.GetValue(j, null).ToString();
    if (re == CValue)
    {
    ResultList.Add(j);
    }
    }
    );
    }
    }
    return ResultList;
    }
    }

    上面的问题解决了:

    var dbLocList =Extension.FinData(_dbLocList,searchField,searchValue);

  • 相关阅读:
    js-AOP
    jQueryUI之autocomplete
    nginx安装配置
    oracle结构语法
    ajax/表单提交 多个相同name的处理方法
    ES6模块化
    docker运维
    帆软报表
    oracle锁表
    香港到大陆IPLC节点故障
  • 原文地址:https://www.cnblogs.com/hiflora/p/3387288.html
Copyright © 2011-2022 走看看