为什么不能在 JObject 上使用 LINQ 方法?

2024-01-25

Newtonsoft.Json.Linq.JObject实施的IEnumerable<T>,而不是显式实现,但为什么不能这样做:

using System.Linq;
...
var jobj = new JObject();
var xxx = jobj.Select(x => x); //error
foreach(var x in jobj) { } //no error

为什么?谢谢。


JObject https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_Linq_JObject.htm两者都实现IEnumerable<KeyValuePair<string, JToken>> and IEnumerable<JToken>(通过继承自JContainer).

因此您不能使用 LINQ(例如Select)直接,因为它不知道要“扩展”哪个可枚举。

因此你需要先进行强制转换:

((IEnumerable<KeyValuePair<string, JToken>>) jobj).Select(x => x)

or:

jobj.Cast<KeyValuePair<string, JToken>>().Select(x => x)

或者正如 @Evk 指出的:

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

为什么不能在 JObject 上使用 LINQ 方法? 的相关文章

  • 提取单花括号内的值

    我想要一个收藏 value 一个字符串使用正则表达式 例如 lorem ipsum field1 lorem ipsum field2 lorem ipsum field1 lorem ipsum field2 field3 我会得到 fi
  • 更改实体的可访问性

    我想建立一个内部实体 我已将实体 其标量属性和导航属性更改为内部 当我尝试构建它时出现此错误 错误 6036 EntityType 文件 具有 内部 可访问性 EntitySet 文件 具有具有 公共 可访问性的 get 属性 Entity
  • 使用 LINQ 展平嵌套字典

    所以我有一本形式的字典Dictionary
  • UI 线程正在阻塞调用 COM 对象的后台线程

    我正在开发一个通过第三方 COM 库与外部设备通信的应用程序 我试图让与设备的所有通信都通过后台线程 以防止通信问题搞砸我的应用程序 并消除在 UI 线程中进行通信所引入的一些其他复杂性 问题是 每当发生导致主 UI 线程阻塞的情况 即调用
  • 多选DataGridView没有CTRL键没有闪烁?

    我在表单 Form1 vb 上有一个 DataGridView 控件 需要允许用户在不使用 CTRL 键的情况下多选行 没有可用的键盘 他们使用触摸屏 我已启用 mutliselect 属性 并在 Form 类中包含以下代码 我的 Data
  • 我如何知道向量的实际最大大小? (不使用 std::vector::max_size)

    在在线课程中 我正在学习向量 在其中一个例子中 他们解释说 std vector max size 应该给我向量可以达到的最大大小 我决定测试一下 include
  • 如何生成可变参数包?

    给定不相关的输入是否可以生成非类型参数包 我的意思是 我想改变这一点 template
  • Web浏览器控件:如何捕获文档事件?

    我正在使用 WPF 的 WebBrowser 控件加载一个简单的网页 在这个页面上我有一个锚点或一个按钮 我想在我的应用程序后面的代码中 即在 C 中 捕获该按钮的单击事件 WebBrowser 控件是否有办法捕获加载页面元素上的单击事件
  • 在 Linq 查询中使用动态列名称

    foreach Dimension dimensions in Enum GetValues typeof Dimension var r new ReferenceTable dimensions referenceItems List
  • 为什么最小的 int -2147483648 的类型为“long”? [复制]

    这个问题在这里已经有答案了 对于一个学校项目 我必须编写 C 函数 printf 的代码 一切进展顺利 但有一个问题我找不到好的答案 所以我来了 printf PRINTF d t d n 2147483648 告诉我 gcc Werror
  • 当分配返回 0 时,具有空异常规范的运算符 new 调用构造函数

    我有以下声明 void operator new size t s PersistentMemory m throw return m gt allocatePersistentMemory s 我正在测试启动时的内存耗尽 这会导致m gt
  • 如何将 Boost Spirit 自动规则与 AST 结合使用?

    编辑 当我想在另一个规则上使用它时 我扩展了 sehe 的示例以显示问题 http liveworkspace org code 22lxL7 http liveworkspace org code 22lxL7 17 我正在尝试提高 Bo
  • 从 AuthorizeAttribute 继承的属性不起作用

    我目前正在尝试根据用户角色在新的 ASP MVC 5 应用程序中实现安全性 目标是防止用户在没有特定角色 或更高角色 的情况下访问某些控制器或控制器方法 根据到目前为止我所读到的问题 我创建了一个继承 AuthorizeAttribute
  • 从 RichTextBox 复制文本及其格式

    如何将 RichTextBox 中的文本及其格式复制到写字板或网络浏览器 就像复制纯文本一样 您可以使用Clipboard SetText method http msdn microsoft com en us library 6eahs
  • 在链表程序中使用模板时重载 C++ 中的 << 运算符

    我正在尝试实现一个链接列表 但是当我尝试重载 include
  • 调用泛型类的方法

    这是上下文 我尝试编写一个映射器来动态地将域模型对象转换为 ViewModel 对象 我遇到的问题是 当我尝试通过反射调用泛型类的方法时 出现此错误 System InvalidOperationException 无法对 Contains
  • 从数据库配置中的连接字符串中删除 SSIS 密码

    我有一个 SSIS 包 它使用 SQL 服务器中的 SSIS 配置表来检索 OLE DB 连接管理器的连接字符串属性 问题是我还需要相同的连接字符串来调用使用实体框架的程序集 我尝试访问连接管理器连接字符串属性 但 SSIS 总是删除密码
  • 标准 .NET 库是否依赖于任何非托管 DLL?

    只是出于好奇 NET 框架本身在访问标准库时是否依赖于任何非托管 DLL 例如 我调用方法 A 并且 在幕后 方法 A 或该方法 A 内的任何其他方法对非托管 DLL 执行 PInvoke 是的 Net 库大量使用非托管函数 库可以调用两种
  • 为什么 INT64_MIN 的定义不同?为什么他们的行为不同?

    The stdint h我公司的标题是 define INT64 MIN 9223372036854775808LL 但在我项目的一些代码中 一位程序员写道 undef INT64 MIN define INT64 MIN 92233720
  • 从 C/C++ 程序进行 Ping

    我想编写一个 C 或 C 程序 给定一个 IP 地址 对其进行 Ping 然后根据 Ping 是否成功执行进一步的操作 这个怎么做 尽情享受Ping 页面 http www ping127001 com pingpage htm 其中有一个

随机推荐

  • 当电影绘制到画布中时 Android 错误信号 11

    我正在开发一个 Android 应用程序 我试图在其中显示 GIF 图像 为此 我使用 Movie 类并创建了一个扩展 View 的类 GIFView 我从 Movie decodeFile 方法获取 Movie 实例 调用 Movie d
  • WiX 主要升级 Windows 服务,保留 .config,并避免重新启动

    我正在努力让 MajorUpgrade ServiceControl config 文件能够很好地协同工作 在我提出其他问题之后 https stackoverflow com questions 22770414 wix majorupg
  • git-shell - 新存储库

    我有一台专门的服务器git用户和存储库我正在尝试使用git shell method http git scm com book en Git on the Server Setting Up the Server让我的开发人员能够从事多个
  • 使用反向引用作为重复计数的正则表达式

    有什么方法可以构造一个按如下方式工作的正则表达式 将整数匹配为组1 然后匹配 1整数 This d s d 1 不幸的是 这是不允许的 但我发现它很好地描述了我想要实现的目标 你可以做这样的事情 var numbers 3 7 6 5 4
  • cakephp 从另一个助手中访问助手

    如何使用我构建的新帮助程序方法访问另一个帮助程序 例如 FormHelper class AppHelper extends Helper public function generateSpecialInput return this g
  • 通过shiny + rgl捕获坐标

    是否可以使用 recognize3d 或类似的方法来捕获通过渲染 Rglwidget 渲染的 rgl 场景中的地标坐标 我在闪亮中使用以下代码进行渲染 server observeEvent input mspec3D tt1 lt out
  • 在页面之间导航时闪烁

    当我在页面之间导航时 我的phonegap jquery 移动应用程序大部分时间都会闪烁 这是正常现象还是有解决办法 ui page webkit backface visibility hidden 这对我在phonegap jquery
  • 使用 openCv c++ 复制图像的一部分

    我正在使用 opencv 我想从另一个图像的一部分创建一个图像 我没有找到这样做的函数 所以我尝试实现我的想法 其中包括逐像素复制图像 但徒劳地我没有得到我正在等待的结果 任何人都有另一种想法 Code include cv h inclu
  • fullcalendar 无法读取未定义的属性“fn”

    我嵌入了fullcalendar min js到我的项目 但我收到此错误 错误日志显示 无法读取未定义的属性 fn 见下图 我检查了这个问题 建议使用jQuery 2 0 0 并且我肯定会使用jQuery v3 3 1 但无助于问题的解决
  • React Native RNFetchBlob 下载后获取文件的 URI

    我正在开发一个 React Native 项目 我现在想做的是下载并将下载的文件保存到设备上 我正在使用这个包 https www npmjs com package rn fetch blob https www npmjs com pa
  • Eclipse:将编辑器与内容类型相关联

    我可以根据内容类型而不是单个文件类型更改编辑器关联吗 如果我去Window gt Preferences gt General gt Editors gt File Associations 我看到基于文件扩展名的文件类型列表 例如 单击
  • 原型编程中对象和原型有什么区别?

    我试图理解创建和使用对象的 JavaScript 方式 但我认为我对对象和原型产生了误解 在我开始的一个新项目中 我决定尝试原型继承 我很困惑 这是否意味着我应该创建一个我打算使用的对象 然后基于该对象创建其他对象Object create
  • 使用 $inc 通过 Mongoose 增加文档属性

    我想增加views每次访问我的文档时都会加 1 到目前为止 我的代码是 Document find sort date 1 limit limit exec 哪里有 inc适合这里吗 从未使用过猫鼬 但快速查看文档here http mon
  • R bquote 的反向行为

    bquote函数允许计算表达式中包含的部分 称呼 例如 a lt 2 b lt 100 bquote 2 a x log10 b 会回来 4 x 2 我想重写这个函数来评估除了里面的东西之外的所有东西 称呼 这是期望的行为 a lt 2 b
  • htaccess 将域名重定向到 https,子域重定向到 https,非 www 重定向到 www

    我想这样做 强制我的主域使用 https http to https www https www http www http www to https www https www 但不适用于子域 http subdomain domain
  • 鼠标悬停时突出显示文本行[重复]

    这个问题在这里已经有答案了 我目前正在开发一个网站 该网站将提供大量故事供人们阅读 基本上是一个博客 我想让它们尽可能容易阅读 并且我认为用光标 突出显示 文本行会很有用 有点像读书时用手指跟随文本行 我偶然发现这个答案 https sta
  • 解释 jstat 结果

    我是 jstat 工具的新手 因此我做了如下示例 jstat gcutil t 4001 5000 Timestamp S0 S1 E O P YGC YGCT FGC FGCT GCT 565088 4 0 00 0 89 75 86 4
  • 为什么 Typescript 编译器将函数的返回类型推断为“原始类型”,而返回值是已知值?

    正如你在下面的代码中看到的 TS编译器infers类型为 const message Math random gt 0 5 hello can you here me null So message变量被推断为 hello can you
  • 解释 SetWindowsHookEx / WH_KEYBOARD_LL 的正确逻辑

    转换消息的正确方法是什么SetWindowsHookEx http msdn microsoft com en us library windows desktop ms644990 28v vs 85 29 aspx with WH KE
  • 为什么不能在 JObject 上使用 LINQ 方法?

    Newtonsoft Json Linq JObject实施的IEnumerable