• 今天遇到一个问题,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);

  • 相关阅读:
    java解析xml
    支持向量机SVM
    资源-菜单
    GIT
    基于OpenCV的图书扫描识别程序开发
    最大公约数(gcd)还有最小公倍数(lcm)的共通之处
    python网页分析
    python爬虫的基本知识储备
    大数加法 (A + B Problem II)
    Andy's First Dictionary (set)
  • 原文地址:https://www.cnblogs.com/hiflora/p/3387288.html
Copyright © 2020-2023  润新知