何时在 Linq 中使用 Cast() 和 OfType()

2024-01-25

我知道有两种将类型转换为IEnumerable从一个Arraylist在 Linq 中并想知道在什么情况下使用它们?

e.g

IEnumerable<string> someCollection = arrayList.OfType<string>()

or

IEnumerable<string> someCollection = arrayList.Cast<string>()

这两种方法有什么区别,每种情况应该应用在哪里?


OfType- 仅返回可以安全地转换为 x 类型的元素。
Cast- 将尝试将所有元素转换为 x 类型。如果其中一些不属于这种类型,您将得到InvalidCastException

EDIT
例如:

object[] objs = new object[] { "12345", 12 };
objs.Cast<string>().ToArray(); //throws InvalidCastException
objs.OfType<string>().ToArray(); //return { "12345" }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时在 Linq 中使用 Cast() 和 OfType() 的相关文章

  • 忽略父进程中的信号

    我正在尝试实现一个 shell 程序 我希望 shell 程序忽略 SIG INT ctrl c 但在我的程序中 子进程也会忽略 SIG INT 信号 但它不应该这样做 因为 exec 应该将子进程带到另一个程序 并且该程序默认情况下应该处
  • 合并多边形的高效算法

    我有一个多边形列表 在这个列表中 一些多边形重叠 或者接触其他多边形 我的任务是合并所有相互重叠或接触的多边形 我有一个union执行此操作的方法 做到这一点最有效的方法是什么 我目前能想到的是循环遍历多边形列表 检查合并列表以查看该多边形
  • 如何使用平台调用编组 void*

    我需要从 dll 中包含的 C api 调用函数 函数原型如下 int func char name void value 其中指针值的内容可以引用依赖于传递的名称的任何类型 我不确定如何设置 Dll 输入端口以正确编组此 void 我一直
  • 从 C# 访问 COM vtable

    C 中有没有办法访问 COM 对象的虚拟方法表以获取函数的地址 经过大量搜索和拼凑不同的部分解决方案后 我弄清楚了如何做到这一点 首先 您需要为您尝试访问的对象定义 COM 组件类 ComImport Guid InterfaceType
  • 增强缓冲区调用后丢失自定义点类型的数据

    我有我自己的观点 class LocationWayPoint public latlong container location WORD index PWeakBasicStation station namespace boost n
  • 在“delete this;”语句期间发生了什么?

    请考虑以下代码 class foo public foo foo void done delete this private int x 以下两个选项中发生了什么 并且有效吗 选项1 void main foo a new foo a gt
  • 如果我每次创建粒子时都强制重新初始化每个粒子,我是否应该使用粒子池

    我正在 XNA4 中创建一个粒子系统 但遇到了问题 我的第一个粒子系统是一个简单的粒子列表 其实例是在需要时创建的 但后来我读到了有关使用池的内容 我的第二个系统由一个充满粒子的池和一个发射器 控制器组成 我的池非常基本 这是代码 clas
  • 使用 Rhino Mocks 模拟集合

    所以我猜这是很多人想做的事情 模拟集合 过去我用 Rhino 做过这样的事情 var col mock MockRepository GenerateMock
  • C#:如何确定坐标是否在美国大陆?

    我正在获取坐标 纬度 经度 我想检查这些坐标是否位于美国大陆 有没有一种简单的方法可以在 C 中实现 我可以将坐标转换为 MGRS 或 UTM 谢谢 哇哦 他们专门为你准备了 http econym org uk gmap states x
  • 有没有一种方法可以在 TreeView.Nodes 集合中搜索 TreeNode.Text 字段?

    像这样 TreeNode treeNodes treeView Nodes Find searchString true 但我希望它在text字段而不是name field 我不知道有任何内置方法 但你可以使用 LINQ TreeNode
  • 调用 Console.ReadLine() 的方法的 C# 单元测试

    我想为名为的类的成员函数创建一个单元测试ScoreBoard它存储了一场比赛中排名前五的球员 问题是我为 SignInScoreBoard 正在呼叫Console ReadLine 这样用户就可以输入他们的名字 public void Si
  • 如何检查我的程序是否有数据通过管道传输到其中

    我正在编写一个应该通过标准输入读取输入的程序 所以我有以下结构 FILE fp stdin 但是 如果用户没有将任何内容通过管道传输到程序中 这就会挂起 我如何检查用户是否确实将数据通过管道传输到我的程序中 例如 gunzip c file
  • 检查字符串中是否存在所有字符值

    我目前正在做这项任务 但我被困住了 目标是读取文件并查找文件中的字符串中是否存在这些字符值 我必须将文件中的字符串与作为参数放入的另一个字符串进行比较 但是 只要每个字符值位于文件中的字符串中 那么它就 匹配 示例 输入和输出 a out
  • ld: 无法对非 PE 输出文件执行 PE 操作错误

    我是操作系统编程的新手 我正在读一本书 其中给出了一个简单的内核示例 如下所示 main char video memory 0xb8000 video memory X 为了编译这个名为 kernel c 的文件 我在 Windows 7
  • 我们可以向 ServicePointManager.SecurityProtocol 添加四个协议吗?

    我想支持从 ssl3 到 tls 1 2 的所有安全协议 但是在网上搜索时我发现代码为 ServicePointManager SecurityProtocol SecurityProtocolType Ssl3 SecurityProto
  • 代表和结构的速度问题

    我遇到了一些与结构和委托有关的速度问题 采用以下控制台应用程序代码 public delegate string StringGetter public class LocalString public LocalString string
  • 如何通过反射获取透明代理的属性值?

    我的代码接收透明代理而不是原始实例 虽然这var type obj GetType 产生原始类的类型 下面的代码抛出TargetException 对象与目标类型不匹配 var value property GetValue obj nul
  • 如何同时正确使用管道和信号?

    我有 2 个孩子 我想将信号从孩子发送到父母 并将答案 随机数 为什么 为什么不 命名管道从父母发送到每个孩子 我有这个代码 include
  • WPF - 将窗口置于前面

    我有一个 WPF 窗口 我没有关闭它 相反 我执行 Hide 和 Show 它 现在 当我双击记录上网格中的主窗口时 这将触发 Show 窗口 该窗口将始终显示在主窗口后面 我尝试过以下方法 但没有成功 view Show view Act
  • 布尔实现的atomicCAS

    我想弄清楚是否存在错误答案 https stackoverflow com a 57444538 11248508 现已删除 关于Cuda like的实现atomicCAS for bool是 答案中的代码 重新格式化 static inl

随机推荐

  • gnuplot - 调整键/图例的大小

    如何调整 gnuplot 4 6 0 中图例的大小 我的意思是线条的大小和not只是字体大小 当我从 pdf 切换到 pdfcairo 终端时 大小突然跳跃并导致关键点与兴趣点重叠 我需要 cairo 来启用 unicode 我刚刚发明的答
  • CasperJS 中的文件 IO

    是否可以在 CasperJS 脚本中读 写文件 var fs require fs var data fs readFileSync testdata data utf 8 console log data Calling casperjs
  • 将海量数据插入Mysql数据库的最快方法[重复]

    这个问题在这里已经有答案了 我实际上有一个包含 100 000 条记录的列表 我想将其插入 MySQL 数据库中 我尝试将它们插入foreach和简单的INSERT INTO然而 即使插入 100 行也需要花费很多时间 比如 1 秒 行 有
  • 我怎样才能执行这个聚合?

    我装了两张表 一张是客户 另一张是订单 select from customers id Name age adress salary 2 102 jpj 24 zzzz 10000 3 103 ftd 20 kkkk 20000 4 10
  • 在PHP中对多维数组进行排序的最快方法

    Array 0 gt Array t gt 81881 b gt 99494 1 gt Array 我有一个像上面这样的多维数组 这个数组中的条目最大可达 20k 我想对这个数组进行排序 到 t 索引而不调用任何外部函数 任何提高效率的建议
  • 由于“INFO Spawnerr:为“app_name”制作调度程序时出现未知错误:EACCES”,无法使用 nohup 启动服务

    我正在尝试与主管一起启动服务 但收到错误消息 信息spawnerr 为 app name 制作调度程序时出现未知错误 EACCES 这是我的supervisord conf 文件 supervisord logfile tmp superv
  • 在类定义之外定义显式专用类的成员函数

    我看到与模板相关的错误 编译器是 Visual Studio 2012 但我不明白 这是代码 归结为要点 Templated class generic template
  • 使用 Windows Azure 队列锁定队列中的消息

    我正在使用 Windows Azure 消息队列 我想知道是否有一种方法可以在收到消息时锁定队列中的消息 当您从队列中检索消息时 它被标记为无形的直到您删除它 或达到超时期限 当它被标记为不可见时 其他人都看不到该消息 我想这已经接近 锁定
  • java中使用数字作为包名

    我已经检查了以下帖子 https docs oracle com javase specs jls se7 html jls 6 html jls 6 2 https docs oracle com javase specs jls se7
  • 在 j2me 中读取收件箱中的短信

    我如何阅读收件箱中的短信 我想阅读短信 没有短信等 我可以在 j2me 中做吗 如果可以的话怎么做 我想在诺基亚和索尼上运行该应用程序 我相信您无法直接从收件箱读取短信 但是 您可以运行 j2me 应用程序并等待传入 的短信 换句话说 如果
  • Firebase Auth:手动检测当前用户最近是否经过身份验证

    默认情况下 如果用户 X 年前登录 Firebase 将要求他 她通过以下方式重新进行身份验证reauthenticateWithCredential以完成该动作 如果用户在继续下一步操作之前已经符合重新身份验证的资格 是否可以查询 Fir
  • 尝试避免使用 sapply 进行 for 循环(对于 gsub)

    尽量避免使用for使用以下代码循环sapply 如果可能的话 带循环的解决方案对我来说非常适合 我只是想学习更多 R 并探索尽可能多的方法 目标 有一个向量i和两个向量sf 搜索 和rp 代替 对于每个i需要循环sf并替换为rp哪里匹配 i
  • 带有 Ignited-Datatables 库的服务器端 DataTables

    如何使用 Ignited Datatables 库来服务器端 DataTables 我的应用程序使用 CodeIgniter 我使用的库是Ignited datatables 库 https github com IgnitedDatata
  • SOLR计数多值字段查询

    是否可以创建一个 solr 查询 其中仅返回在多值字段中具有多个条目的文档 例如 docs id 1 myfield hello word hello stackoverflow id 2 myfield hello word 我天真的示例
  • 将数值向量中的 NA 替换为从邻居计算出的值

    我正在尝试写一个替换 函数将给定数值向量中的每个缺失值替换为算术平均值 of 它的前面和后面的元素 例如 如果c 5 NA 6 2 3 5 6 4 NA 2 NA 5 给出 那么结果应该是c 5 5 5 6 2 3 5 6 4 3 2 3
  • 如何在 printf 函数中使用宏

    所以我在我的头文件中定义了这个宏和其他一些宏 define COL1WIDTH 16 我想用它来打印这样的东西 word 25 Dir1 FileB 129 Sat Jan 1 00 00 02 2011 12 1 x4 2 x2 3 x2
  • ASP.NET 中的 jQuery ajax 带有 customErrors mode="On"

    知道如何检索服务器端在执行时抛出的原始异常使用 jQuery 调用 ajax 并使用 自定义错误模式 开 在 web config 中 如果 mode Off 我可以使用此函数获取错误 error function xhr status e
  • C++ 中的重定向

    include
  • TDD 如何应用于基于 Django 类的通用视图?

    由于 Django 中基于类的通用视图涉及框架的一些工作 我发现很难以 TDD 风格使用它们 现在 我使用 TestClient 从 http 模拟堆栈访问视图 但我更愿意在使用 TestClient 进行 功能 测试之前正确地对特定方法
  • 何时在 Linq 中使用 Cast() 和 OfType()

    我知道有两种将类型转换为IEnumerable从一个Arraylist在 Linq 中并想知道在什么情况下使用它们 e g IEnumerable