如何使用 LINQ 在集合中选择集合?

2023-12-13

我有以下结构。

public class ToolSettings
{
  public string Extension { get; set; }
  public ObservableCollection<Tool> Tools { get; set; }
}

public class Tool
{
  public string Name { get; set; }
  public string Command { get set; }
}

// Within app code
public ObservableCollection<ToolSettings> settings { get; set; }

我想从设置集合中获取工具集合,其中扩展等于某个字符串。

下面是我的 LINQ 代码,但当我知道还有更多项目时,我只会在我的集合中获取一项。看起来它生成了一个集合的集合,这就是为什么只有一个项目。

myListBox.ItemsSource = from i in settings 
                        where i.Extension == myExtension 
                        select i.Tools;

EDIT:

感谢所有好的(和快速的)答案。结果我只需要第一项,但我知道 SelectMany 方法将来会派上用场。所以,谢谢大家的提醒。这是我使用的完整解决方案。

myListBox.ItemsSource = (from i in settings 
                         where i.Extension == myExtension 
                         select i.Tools).First();

myListBox.ItemsSource = settings.Where(s => s.Extension == myExtension)
                                .SelectMany(s => s.Tools);

或者,如果您更喜欢查询语法而不是流畅的语法:

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

如何使用 LINQ 在集合中选择集合? 的相关文章

  • 如何指定CMAKE外部项目的编译器?

    我使用ExternalProject Add 包含一个外部项目 我想要的是能够做到 cmake DCMAKE CXX COMPILER
  • HttpResponseMessage 的内容为 JSON

    我有一个 ASP NET MVC WEB API 由于多种原因 由于没有授权而重定向 我不能只使用一个简单的对象并在我的控制器方法中返回它 因此我需要 HttpResponseMessage 类来允许我重定向 目前我正在这样做 var re
  • 如何在C编程中获取当前时间(以毫秒为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 ANSI C 测量以毫秒为单位的时间 https stackoverflow com questions 361363 how to measure time in milliseconds
  • C 中的分段错误

    我需要用 0 填充二维数组 但编译后的程序会出现此错误 怎么了 int main int vert 1001 1001 int hor 1001 1001 int dudiag 1416 1416 int uddiag 1416 1416
  • 当“”可以分配给std::string时,为什么有“clear”方法?

    一个可以用string clear函数清空字符串 也可以使用空双引号 来执行此操作 有什么不同 当您分配一个空字符串时 编译器必须在数据部分存储一个空的 C 字符串 并创建代码以将指向它的指针传递给赋值运算符 然后 赋值运算符必须从数据部分
  • 无法在更新面板中找到上传的文件

    aspx
  • 使用 gcc 编译 C 时,预处理的 .i 文件中的数字意味着什么?

    我想了解编译过程 我们可以使用以下命令查看预处理器中间文件 gcc E hello c o hello i or cpp hello c gt hello i 我大致知道预处理器的作用 但我很难理解某些行中的数字 例如 1 usr incl
  • 打印出 Linq 表达式树层次结构

    The 动态语言运行时 DLR http msdn microsoft com en us library dd233052 aspx有一些非常酷的表达式代码 包括一些非常好的代码来打印我想使用的表达式树 以便 int a 1 int b
  • 将 LINQ to Entities 查询中的每个项目转换为接口的最佳方法是什么?

    我有一个实现 IUser 的实体对象 User IQueryable
  • 将内核链接到 PTX 函数

    我可以使用 PTX 文件中包含的 PTX 函数作为外部设备函数 将其链接到另一个应调用该函数的 cu 文件吗 这是另一个问题CUDA 将内核链接在一起 https stackoverflow com questions 20636800 c
  • 使用 boost::iterator_facade<>

    我有一个链表结构 struct SomeLinkedList const char bar int lots of interesting stuff in here DWORD foo SomeLinkedList pNext 它是现有
  • F# 内联如何工作?

    对于 F 我的理解是您可以使用 inline 关键字在调用站点执行类型专门化 那是 val inline a gt b gt c when a or b static member a b gt c 约束条件是 a or b必须有一个静态成
  • 整数与双精度算术性能?

    我正在编写一个 C 类来使用整数执行 2D 可分离卷积 以获得比双对应更好的性能 问题是我没有获得真正的性能提升 这是 X 过滤器代码 对于 int 和 double 情况都有效 foreach pixel int value 0 for
  • 适用于 Windows 的键值数据库?

    除了 MongoDB 和 Memcached 之外 Windows 上还运行哪些键值存储 我见过的大多数似乎只能在 Linux 上运行 Hypertable Redis Lightcloud 相关链接 是否有经过商业验证的云存储 Key g
  • Java 中 LINQ 的等价物是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java 中 LINQ 的等价物是什么 没有什么比 LINQ for Java 更好的了 Edit 现在
  • 复杂的 C 声明

    我刚刚在互联网上浏览了一些代码 发现了这个 float foo SIZE SIZE 我如何阅读这份声明 是否有一套特定的规则来阅读如此复杂的声明 我有一段时间没做这个了 从 开始foo然后向右走 float foo SIZE SIZE fo
  • DLL 中的 XP 风格组合框

    我需要使用 C 和 WIN32 API 无 MFC 在 DLL 中创建 XP 风格的组合框 我设法在 DLL 中创建控件 不是以 XP 风格 我设法在带有清单的 exe 中创建 XP 样式组合框 但它在 DLL 中不起作用 为了让您的 DL
  • C语言中如何将整数转换为字符? [复制]

    这个问题在这里已经有答案了 C语言中如何将整数转换为字符 C 中的字符已经是数字 字符的 ASCII 代码 无需转换 如果要将数字转换为相应的字符 只需添加 0 即可 c i 0 0 是 ASCii 表中的一个字符
  • 将函数作为函数参数传递

    Unity C 似乎无法识别Func lt gt 作为函数委托的符号 那么 如何将函数作为函数参数传递呢 我有一个想法Invoke functionName 0 可能有帮助 但我不确定它是否实际上立即调用该函数 或者等待帧结束 还有别的办法
  • C# 记录类型:记录子类之间的相等比较

    给定父记录类型 public record Foo string Value 和两个记录子类Bar and Bee我想知道是否可以实施Equals在基类中 因此 Foo Bar 或 Bee 的实例都被考虑equal基于Value 两者都与E

随机推荐

  • 为什么可以通过构造函数分配只读属性?

    我已经设置了属性Name是只读的 但仍然可以分配 class Person public string Name get public Person string name Name name 尝试为属性设置值Name var p new
  • android TrafficStats getUidRxBytes 不准确

    我编写了一个小 Android 应用程序 发送 Http 请求 接收来自服务器的响应 并计算传输和接收的字节数 代码如下 long receivedBytes TrafficStats getUidRxBytes uid lastNumer
  • 使用 RSA 进行模乘会导致 Java Card 上出现错误

    你好 我正在开发一个关于 Java Card 的项目 这意味着大量的模乘 我设法使用 RSA 加密系统在这个平台上实现模乘 但它似乎适用于某些数字 public byte modMultiply byte x short xOffset s
  • ACS 中是否支持通过 WS-Trust/ActAs 进行身份委托?

    我刚刚开始使用基于声明的安全性 并且有一个与身份委托相关的问题 我已经成功设置了一个本地虚拟 STS 和几个依赖它进行身份验证的 WCF 服务 Web 应用程序通过 STS 对用户进行身份验证并调用服务 A代表用户 using Channe
  • Google 登录对话框关闭 android studio 后屏幕闪烁

    我面临这个问题 但无法找到解决方案 我使用 firebase 在我的应用程序中实现了 Google Sign In 我面临的问题是 每当 登录 对话框关闭时 屏幕上就会出现一条从上到下的黑色条带 它移动得非常快 但仍然很明显 我想删除横跨屏
  • 在 MFC 程序中挂钩窗口创建

    我想在 MFC 程序中挂钩窗口创建 有什么办法可以做到这一点吗 Use 设置WindowsHookEx安装一个CBTProc 这是一些示例代码 只需致电InstallHook 从程序的开头开始 然后监视HCBT CREATEWND通知代码
  • 无法在 Google Play 中更新我的应用:aapt 错误

    今天 当我尝试上传应用程序更新时 我从 Google Play 控制台收到以下信息 将新 APK 上传到生产环境 上传失败 无法使用 aapt dump badging 分析您的 APK 错误输出 无法运行 aapt dump badgin
  • 在 ArrayList 中搜索特定对象

    我有一堂课叫Person 它有以下内容attributes 它有2个属性 ID and Telephone 1 个人可以拥有多部电话 因此您可能会在下面看到具有多个 ID 的人 public ArrayList
  • 用gson解析Json返回null对象

    我正在通过 gson 解析 Json 字符串 这是 Json 字符串 ID 1 Name Australia Active true ID 3 Name Kiev Active true ID 4 Name South Africa Act
  • 构造一个从字节数组读取的 java.io.File

    我正在使用需要 java io File 作为输入的 API 但我只想向 API 发送一个字节数组 有没有办法创建一个从我的字节数组而不是从磁盘读取的 File 对象 A File不读任何内容 它代表操作系统中的文件 或目录 对象 或虚拟文
  • 让 UiViewController 保持纵向模式 iOS6 VS iOS5

    我正在为 iOS5 和 iOS6 构建一个应用程序 我在 UINavigationController 中有这个 UIViewController 我希望它保持纵向模式 该代码适用于 iOS5 但不适用于 iOS6 iOS5 rotatio
  • 关闭 XCode CoreData 模型的 codegen

    我自己在 XCode 中使用已声明的类制作 CoreData 模型 编译器代码为我生成了重复项 如何摆脱它 在数据模型编辑器中 将右侧数据模型检查器中的 Codegen 选项更改为 手动 无 遗憾的是 据我所知 您必须分别为每个实体执行此操
  • 将数组值添加到 MongoDB 中,其中元素不在数组中

    在 MongoDB 中 这是我的简化结构account文档 id ObjectId 5a70a60ca7fbc476caea5e59 templates name Password Reset content AAAAAAAA name W
  • 在python中将ndjson转换为json

    我需要在 python 中将 ndjson 对象转换为 json 我看到 pypi org 中有一个库 但我无法使用它 这是 ndjson 0 3 1 license mit count 1551711 license apache 2 0
  • 捕获 C# 表单上的关闭事件

    嘿 我并不是想在这里碰碰运气 但我还有另一个 c 问题 我已经尝试了使用谷歌找到的所有可能的事件 这是代码 private void Form1 OnClose MessageBox Show I was closed 2 private
  • 使用 Action-Cable 的 Ruby-on-Rails 应用程序在开发中运行,但在生产模式中失败

    当从 GPS 接收器收到消息时 我的 RoR 应用程序使用 Action Cable 更新页面 这在开发模式下工作得很好 但在生产模式下浏览器不会收到页面更新 顺便说一句 这是在 Docker 容器中运行的 浏览器出现 404 错误 Err
  • vCard .vcf 文件下载浏览器支持 - godaddy [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我在网站上有一个下载 vCard vcf 链接 它可以在本地运行 但不能在线运行 只需在浏览器中打开文件而无需下载 我宁愿不用压缩它 仔细阅读后发现我需要这样写 AddType tex
  • 如何增加 ASP.NET 中的最大上传文件大小?

    我有一个接受 ASP NET 中文件上传的表单 我需要将最大上传大小增加到默认值 4 MB 以上 我发现在某些地方引用了以下代码msdn ConfigurationPropertyAttribute maxRequestLength Def
  • Powershell - 仅打印引号之间的文本?

    如何让以下文本的输出仅显示引号中的文本 不带引号 示例文本 this is an apple it is red this is an orange it is orange this is an blood orange it is re
  • 如何使用 LINQ 在集合中选择集合?

    我有以下结构 public class ToolSettings public string Extension get set public ObservableCollection