是否可以在不包含 System.Linq 命名空间的情况下使用 Linq 和 lambda?

2023-11-22

前段时间,我一直在从事一个相当扭曲的项目 - 我只能在单个范围内编写代码,然后将其放入 C# 函数中(通过另一个模块)。

我只能使用之前声明的命名空间(我对它们没有影响),并且只能使用我工作范围内的变量。 因此,我无法更改标头和包含的库。

当我想对泛型集合进行操作时,问题就出现了 - 我既不能使用 lambda 表达式,也不能使用 LINQ - 我根本就不会 能够放using System.Linq;,因为我无法访问文件头。

我只需要做一件简单的事情,并且无需 LINQ 或 lambda 即可轻松管理。然而,在那之后我想知道如果我必须使用一些会发生什么 IEnumerable 上的操作更复杂。 由此,我的问题来了:

是否可以在不更改文件头和添加新命名空间的情况下使用 LINQ 或 lambda?

假设我们有一个List<int> _Numbers = new List<int>();。让它填充一些数字。 现在我想从中选择所有偶数。

With using System.Linq;在标题中,解决方案很明显:

List<int> _NewList = _Numbers.Where(n => n % 2 == 0).ToList();

or

List<int> _NewList = (from _Number in _Numbers where _Number % 2 == 0 select _Number).ToList();

但是如果不包含 LINQ,我该如何实现这一目标呢? 我的第一个猜测是这样的:

List<int> _NewList = System.Linq. // ??? What to add here?

我知道这个问题相当奇特,而且这样做很不寻常,但我只是好奇,我没有找到有关此案例的任何信息。


如果没有using指令,方法如.Where, .Select,不会解决。这意味着 LINQ语言部分不管用。您必须手动编码(并且向后!):

List<int> _NewList = System.Linq.Enumerable.ToList(
    System.Linq.Enumerable.Where(_Numbers, _Number => _Number % 2 == 0)
);

请注意,对于包含组、订单、“let”、连接等的较长示例,这会变得越来越复杂。除非您正在做一些相当简单的事情,否则建议找到一种方法来添加using指示。

但请注意,如果_Numbers is a List<T>,你可以使用(对于这个例子):

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

是否可以在不包含 System.Linq 命名空间的情况下使用 Linq 和 lambda? 的相关文章

  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 如何查看网络连接状态是否发生变化?

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

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 如何检查输入文本字段是否仅包含空格?

    在 Javascript 中检查输入文本字段是否为空 不包含任何内容或仅包含空格 的最简单方法是什么 var str document getElementById myInput value if str match s nothing
  • 使用 websocket mod_proxy_wstunnel 进行反向代理

    我的 Web 套接字和反向代理 Apache 有问题 我已升级到最新版本 2 4 5 并加载了模块mod proxy wstunnel httpd conf
  • Rails 3.x 是否有调试工具栏

    I used 机架 错误一年多前 现在我想将它与新的 Rails 3 1 项目一起使用 我尝试安装 master 和 Rails3 分支 但没有成功 也尝试过一些 github 分支但他们也没有工作 有没有具有相同功能的替代方案 附 我已经
  • 使用 T-SQL,从字符串中返回第 n 个分隔元素

    我需要创建一个函数 它将返回分隔字符串的第 n 个元素 对于数据迁移项目 我使用 SQL 脚本将存储在 SQL Server 数据库中的 JSON 审核记录转换为结构化报告 目标是在没有任何代码的情况下交付一个 sql 脚本和该脚本使用的
  • Windows 内存文件系统

    我有一个命令行可执行文件 需要在 Windows XP 上从 Java 运行 它使用文件作为输入和输出 但我想避免文件IO的开销 所以我想到了内存RAM文件系统 NetBSD 有mount mfs 您能推荐最方便的方法吗 您还应该考虑您是否
  • 如何在 F# 中定义 printfn 等效项

    由于我使用 F 进行研究 特别是使用 F 交互式 因此我希望拥有可切换的 调试时打印 功能 I can do let dprintfn printfn F 交互式 说 val dprintfn Printf TextWriterFormat
  • 如何让 xdebug/step-debugging 与 ddev 一起使用?

    我一直在我的 Drupal 项目上使用 ddev 现在想使用 xdebug 这样我就可以使用 PhpStorm 进行逐步调试 或者实际上任何 IDE 都可以 但我似乎无法让它在断点处停止 我试图遵循ddev 文档中的说明但这并没有让我继续下
  • 在 Matlab 中生成包含给定集合中至少一个元素的所有组合

    I use combnk生成组合列表 如何生成始终包含特定值的组合子集 例如 对于combnk 1 10 2 我只需要包含 3 和 或 5 的组合 有没有快速的方法可以做到这一点 好吧 在您的具体示例中 从集合 1 10 中选择两个整数 其
  • 无法更改引导工具提示标题

    我已经浏览了有关堆栈溢出的几篇文章 询问了几乎完全相同的问题 但我在这些问题上发现的内容都没有帮助 我对 JQuery 和 Bootstrap 非常陌生 所以也许我只是错过了一些非常简单的东西 我希望能够在第一次初始化后更改不同元素上的工具
  • 如何将 boost 线程添加到向量中

    我有这样的错误 vector
  • Android ZipInputStream:只有 DEFLATED 条目可以有 EXT 描述符

    在我的 Android 设备上 我需要提取从内容 uri 获取的文件 一个 xapk 据我所知 这是一个普通的 zip 存档 我正在使用这行代码创建 ZipInputStream ZipInputStream zis new ZipInpu
  • *(a++) 给出错误,但 *(a+1) 没有给出错误?其中 a 是数组名称?

    在下面的代码中 void main char a 1 5 3 4 5 6 printf d n a line gives error wrong type argument to increment printf d n a 1 第 4 行
  • Javascript:非阻塞方式等待条件为真

    我有几个 ASP NET UpdatePanel 每个都有一个与同一按钮的服务器端单击事件绑定的 AsyncPostBackTrigger 由于一次只能有一个 UpdatePanel 执行其操作 因此我使用 get isInAsyncPos
  • 理解 std::forward

    为什么编译器无法推断出模板参数std forward I mean include
  • 如何获取 IQueryable.Count 的 ToTraceString

    I use ObjectQuery IQueryable ToTraceString 获取并调整将由 LINQ 执行的 SQL 代码 我的问题是 与大多数 IQueryable 方法不同 IQueryable Count 的定义如下 pub
  • ELF动态加载器符号查找排序

    解析动态重定位时符号查找的搜索顺序是什么 当解析共享库的符号时 加载程序首先在 主可执行文件 中搜索 以让主可执行文件覆盖定义 还是什么 根据我的理解 每个可执行对象都有自己的 查找范围 主可执行文件通常是 全局 查找范围中的第一个对象 这
  • 什么是依赖注入?

    已经发布了几个问题 其中包含有关的具体问题依赖注入 例如何时使用它以及有哪些框架 然而 什么是依赖注入以及何时 为什么应该或不应该使用它 到目前为止我发现的最好的定义是詹姆斯 肖尔 James Shore 创作的一首 依赖注入 是25美元
  • 如何禁用android中网格视图中特定位置的项目点击

    我正在使用网格视图 其中每个单元格使用文本视图 我正在使用 onitemclick 在单击网格单元格时执行某些操作 我想禁用网格视图中特定位置的项目单击 我怎么做 我对 getView 中的特定位置使用了convertView setcli
  • 如何使用 DOM 通过年龄验证

    我正在尝试从 Steam 商店页面中提取一些图像 URL 例如 http store steampowered com app 35700 http store steampowered com app 252490 这是我正在使用的代码
  • 是否可以在不包含 System.Linq 命名空间的情况下使用 Linq 和 lambda?

    前段时间 我一直在从事一个相当扭曲的项目 我只能在单个范围内编写代码 然后将其放入 C 函数中 通过另一个模块 我只能使用之前声明的命名空间 我对它们没有影响 并且只能使用我工作范围内的变量 因此 我无法更改标头和包含的库 当我想对泛型集合