我有以下结构。
我想从设置集合中获取工具集合,其中扩展等于某个字符串。
以下是我的LINQ代码,但我只得到了一个项目,而我知道有更多。看起来它生成了一个集合的集合,这就是为什么只有一个项目的原因。
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;
编辑:
感谢所有提供良好且快速回答的人。事实证明,我只需要第一项,但我知道SelectMany方法将在将来派上用场。因此,感谢您们的提醒。这是我使用的完整解决方案。
myListBox.ItemsSource = (from i in settings
where i.Extension == myExtension
select i.Tools).First();