为 LINQ/Lambda 创建 OrderBy 表达式

2024-02-12

我正在创建一个使用 Lambda/LINQ 进行动态 where 和 orderby 的概念验证。以下代码适用于 where 表达式,但我不知道如何创建 order by 表达式。对于这个例子,如果可能的话我想保持简单;我宁愿不编写修改表达式树的代码。

void Main()
{
    DateTime productSince = DateTime.UtcNow.Subtract(new TimeSpan(1,30,0));
    Expression<Func<Products, bool>> filter = d => d.CreatedDate > productSince && d.Price < 100 ;    
    List<Products> products = GetProducts(filter, Products);
    Console.WriteLine(products);
}

private static List<Products> GetProducts(Expression<Func<Products, bool>> filter,  Table<Products> Products)
{

    var products = Products.Where(filter);
    return products.ToList();
}

我想要的类似于以下内容,但无法弄清楚创建 order by 表达式的代码。

void Main()
{
    DateTime productSince = DateTime.UtcNow.Subtract(new TimeSpan(1,30,0));
    Expression<Func<Products, bool>> filter = d => d.CreatedDate > productSince && d.Price < 100 ;
    Expression<Func<Products, ????>> orderBy = d => ??????;

    List<Products> products = GetProducts(filter, orderBy, Products);
    Console.WriteLine(products);
}

private static List<Products> GetProducts(Expression<Func<Products, bool>> filter,
               Expression<Func<Products, ???>> orderBy, Table<Products> Products)
{

    var products = Products.Where(filter).OrderBy(orderBy);
    return products.ToList();
}

如果您想知道,我正在使用 LinqPad 进行概念验证。


private static List<Products> GetProducts<TOrderBy>(Expression<Func<Products, bool>> filter,
               Expression<Func<Products, TOrderBy>> orderBy, Table<Products> Products)
{

    var products = Products.Where(filter).OrderBy(orderBy);
    return products.ToList();
}

如果您查看 OrderBy 扩展方法,它接受Expression<Func<T, TOrderBy>>因为表达式可以产生任何类型,具体取决于

.OrderBy(x => x.ID) // <T, int>
.OrderBy(x => x.Name) // <T, string>

因此,您的包装方法需要能够接受要传入的泛型类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 LINQ/Lambda 创建 OrderBy 表达式 的相关文章

  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable

随机推荐

  • 同一角色的实例之间的 Azure 网络通信

    同一角色的多个角色实例是否可以通过获取所有这些实例侦听的特定端点的 VIP 虚拟 IP 地址来相互通信RoleEnvironment 如果是这样 返回的 VIP 可以负载均衡到调用者 的RoleEnvironment方法 实例本身 角色实例
  • 设置 UINavigationbar 的标题不起作用

    我浏览了一些在线教程 但没有任何效果 这是我的 viewController 的代码 import UIKit class ViewController UINavigationController let textView UITextV
  • 在 MySQL 中查找下一个可用的 id

    我必须在 MySQL 数据库中找到下一个可用的 id 如果数据库中有 5 个数据 我必须获取下一个可用的插入位置 即 6 我怎样才能做到这一点 我用过MAX id 但是当我从数据库中删除一些行时 它仍然保留未更新的旧最大值 更新2014 1
  • Flask|Jinjia2|Javascript:将 Flask 模板变量传递到 Javascript

    将变量从 Flask 模板传递到 Javascript 文件的最佳方法是什么 这是我的代码 我的网络应用程序中有一个简单的视图 webapp route bars def plot d3 bars return render templat
  • 奇数个 a 的正则表达式

    我在解决以下练习时遇到问题 希望得到任何帮助 令 a b 我需要为包含奇数个 a 的所有字符串给出一个正则表达式 感谢您的时间 b ab ab ab 它的主要部分是 ab ab 它枚举了偶数个的所有可能性as 最后 还有一个额外的a必须存在
  • 将 MIME 转换为 RichText

    我想转换多米诺骨牌文档字段Data Type MIME Part into a Data Type Rich Text in backend with SSJS or Java 我尝试过与 doc computeWithForm true
  • 无法解析 RubyMine 中的文件

    我正在尝试将 RubyMine v6 3 3 用于我的 Rails 项目 我添加后bootstrap sass宝石根据其说明 在https github com twbs bootstrap sass https github com tw
  • GWT Maven 插件 -- gwt:run 可以工作,但 gwt:compile 不能。为什么?

    我正在使用 gwt maven plugin 来管理 GWT 项目 我用gwt run目标始终以 开发模式 本地运行进行测试 我现在想将我的项目编译成 war 以部署在 Tomcat 上 当我跑步时gwt compile但是 我收到编译错误
  • 从自定义指令 VueJS 更新模型

    我目前使用 Vue JS 2 0 我想从自定义指令更新一个 Vue 实例的模型 但我正在寻找一种很好的方法来做到这一点 这是因为我试图创建一个实现 JQueryUI Datepicker 代码的自定义指令如下
  • 指向匿名联合体的指针的强制转换在 C11 中有效吗?

    const Boo constBoo Boo nonConstBoo nonConstBoo union const Boo q Boo nq constBoo nq 上述构造在 C11 中有效 还是只有 GCC clang 扩展才能以这种
  • filter_var_array() 多维数组

    有什么想法为什么这行不通吗 POST array edit gt array name gt test die var dump filter var array POST array edit name gt FILTER SANITIZ
  • 有谁发现这个程序有什么问题吗

    在没有得到我喜欢的答案后这个关于 chroot 的问题 https stackoverflow com questions 3737008 how run in a chroot jail not as root and without s
  • 性能方面,按位运算符与普通模数的速度有多快?

    是否在正常流程或条件语句中使用按位运算 例如for if等可以提高整体性能 在可能的情况下使用它们会更好吗 例如 if i 1 vs if i 2 除非您使用的是古老的编译器 否则它已经可以自行处理这种级别的转换 也就是说 现代编译器可以并
  • NetBeans。连接到托管数据库

    我有共享主机上的数据库 是否可以从 NetBeans 连接到该数据库 是的 有条件的话是可以的 允许从外部访问您的数据库 这通常通过将主机设置为 关于数据库配置 要查看是否允许 您需要查看数据库管理面板和 或询问您的托管提供商 因为 不同的
  • 跟踪用户活动的 Gem [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一个好的 gem 来跟踪 记录网站上的用户活动 例如 当他们登录 注销或执行更改网站上某些内容的操
  • ABRecordCopyValue 返回 0 ?

    我想做的是获取所有联系人并依赖 如果联系人有 社会档案财产或没有 在获得所有这些联系人之后社会档案财产我会做简单的过滤来知道是否是脸书 推特 在我发布这个问题之前 我花了一整天的时间试图找到这个问题的解决方案 但它允许返回0 ABAddre
  • 依赖关系保留

    因此 我正在查看我的数据库笔记和材料 试图让自己了解即将到来的采访的一般概念和术语 然而 我陷入了依赖和无损连接分解的困境 我到处搜索并看到很多数学方程 但我正在寻找简单明了的英语答案或例子 我找到了一个来自http www cs kent
  • 如何使用纯 CSS 和 HTML 叠加图像/水印

    有没有一种简单的方法可以通过相对定位将透明 PNG 或任何其他图像 覆盖在带有 CSS 的图像标签上 只需传递一个类 img class watermarked src http placehold it 500x325 jpg alt P
  • C# 如何知道给定路径是否代表根驱动器?

    我如何知道给定目录是否是根驱动器 除了检查其路径是否等于 A B C 等 检查 DirectoryInfo Parent 是否为空 DirectoryInfo d new DirectoryInfo if d Parent null IsR
  • 为 LINQ/Lambda 创建 OrderBy 表达式

    我正在创建一个使用 Lambda LINQ 进行动态 where 和 orderby 的概念验证 以下代码适用于 where 表达式 但我不知道如何创建 order by 表达式 对于这个例子 如果可能的话我想保持简单 我宁愿不编写修改表达