首页 > 编程语言 >C#中Linq查询条件动态化

C#中Linq查询条件动态化

时间:2023-02-23 19:00:36浏览次数:34  
标签:C# list List Linq Models Add 搜索 new 动态化

由于Linq查询主要是强类型查询,所以很难做到像sql语句一样,在执行前可以动态拼接。

不过通过方法或者集合方式也可以实现一定的动态化。

1.动态的or操作。可以简单的使用list创建搜索集合。

        #region 搜索
        List<string> list = new List<string>();
        list.Add("str1");
        list.Add("str2");
        list.Add("str3");
        var v = from A in Models
                from B in list
                where A.数据.Contains(B)
                select A;
        #endregion

或者

        #region 搜索
        List<string> list = new List<string>();
        list.Add("str1");
        list.Add("str2");
        list.Add("str3");
        var result = from o in Models
                     where
                     list.All(s => o.数据.ToLower().Contains(s.ToLower())
        #endregion

 

2.动态的and操作。可以简单的使用list创建搜索集合。

当然不写方法直接循环执行也可以。

        #region 搜索
        List<string> list = new List<string>();
        list.Add("str1");
        list.Add("str2");
        list.Add("str3");

        List<string> Models = new List<string>();
        foreach (string l in list)
        {
            Models = GetSearch(Models, l);
        }
        #endregion

    List<string> GetSearch(List<string> ss, string str)
    {
        var v = from A in ss
                where A == str
                select A;
        List<string> Models = v.ToList();
        return Models;
    }

 

标签:C#,list,List,Linq,Models,Add,搜索,new,动态化
From: https://www.cnblogs.com/cuihongyu3503319/p/17149087.html

相关文章

  • Asp.NET Core 导出数据到 Excel 文件
    在Asp.NetCore开发中,使用NPOI将数据导出到Excel文件中,并返回给前端。service层代码:///<summary>///将数据导出到excel///</summary>......
  • RPC的诞生
     RPC远程过程调用(RemoteProcedureCall)调用远程计算机上的服务,就像调用本地服务一样。   RPC的Java版本--RMI nRMI概述RMI(remotemethodinvocation),......
  • RPC的诞生
     RPC远程过程调用(RemoteProcedureCall)调用远程计算机上的服务,就像调用本地服务一样。   RPC的Java版本--RMI nRMI概述RMI(remotemethodinvocation),......
  • Django CSRF认证的几种解决方案
    什么是CSRF浏览器在发送请求的时候,会自动带上当前域名对应的cookie内容,发送给服务端,不管这个请求是来源A网站还是其它网站,只要请求的是A网站的链接,就会带上A网站的cookie......
  • Mapstruct 使用教程
    前言MapStruct是一个Java注释处理器,用于生成类型安全的bean映射类。您要做的就是定义一个映射器接口,该接口声明任何必需的映射方法。在编译期间,MapStruct将生成此接口的......
  • 关于tomCat 部署到阿里云linux中不能访问随笔记录
    一、首先查看服务器的端口号是否开放1.首先看一下服务器内部防火墙有没有开启以及有没有开启80或者8080端口号:命令:firewall-cmd--list-ports如有则显示如下图片:2.......
  • asp.net core webapi初识
    1.建立webapi项目  2.把启用SSL取消勾选(取消https)  3.选择项目-右键-发布,进行发布信息设置,选择文件夹发布   4.打开IIS管理器,新建网站,物理路径选择刚刚......
  • 【转】package.json 文件解析
     package.json文件解析每个项目的根目录下一般都会有一个package.json文件,这个文件定义了当前项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等)。当......
  • C# System.Threading.Timer z
    C#System.Threading.Timer详解及示例阅读目录前言一、两类重载1、Timer(TimerCallback)2、Timer(TimerCallback,Object,Int32,Int32)二、属性ActiveCo......
  • CF845G - Shortest Path Problem?
    题意:求带边权无向图上\(1\)到\(n\)的异或最短路,可以重复经过某条边。首先,我们考虑从\(x\)到\(y\)的路径\(A\),它的权值是\(a\)。我们从路径中途的某个地方离开路......