You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Lambda表达式转换为LINQ语法?求转换工具及代码转换帮助

问题解答:Lambda与LINQ互转工具及表达式转换

一、Lambda表达式与LINQ语法互转工具

  • Visual Studio内置重构:选中目标Lambda表达式或LINQ查询,右键选择「快速操作和重构」(快捷键Ctrl+.),在弹出菜单中选择「转换为查询表达式」(Lambda转LINQ)或「转换为方法链式调用」(LINQ转Lambda)。大部分常规场景都能自动转换,复杂嵌套表达式可能需要手动微调。

二、指定Lambda表达式的LINQ语法转换

原Lambda表达式

var Result = userRoleIds.Select(s => (s.UserId, actionFullNames.Select(actionFullName 
  => (actionFullName, permissions.Any(A => s.RoleIds.Contains(A.RoleId) && 
  A.ActionFullName.Equals(actionFullName, StringComparison.OrdinalIgnoreCase))))
 .ToArray())).ToArray();

转换后的LINQ查询语法

var Result = (
    from s in userRoleIds
    select (
        s.UserId,
        (
            from actionFullName in actionFullNames
            select (
                actionFullName,
                permissions.Any(A => s.RoleIds.Contains(A.RoleId) && 
                    A.ActionFullName.Equals(actionFullName, StringComparison.OrdinalIgnoreCase))
            )
        ).ToArray()
    )
).ToArray();

转换说明:保持原表达式的嵌套结构与逻辑,用嵌套LINQ查询表达式替代链式Select调用,值元组、Any条件及ToArray()调用均与原代码完全一致。

内容的提问来源于stack exchange,提问作者YaSecu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 16:27:07