c# - LINQ:获取包含具有特定名称和值的属性的数组中的对象
问题描述
可以说,尝试通过使用具有特定值的属性之一作为“指针”来选择数组中的对象。我的目标是用 linq 做到这一点
例子:
{
"A": "ValA",
"B": "ValB",
"C": [
{
"D": "ValD1",
"E": "ValE1",
"F": "ValF1"
},
{
"D": "ValD2",
"E": "ValE2",
"F": "ValF2"
},
{
"D": "ValD2",
"E": "ValE3",
"F": "ValF3"
}
]
}
所以我想做的是获取包含属性“D”和值“ValD2”的对象n数组“C”。由于有两个对象,我想让 LINQ 查询返回一个包含两个对象的列表。如果有一个对象包含属性“D”和值“ValD2”。可以这么说,我只会取回一个包含这些参数的对象。
那是:
[
{
"D": "ValD2",
"E": "ValE2",
"F": "ValF2"
},
{
"D": "ValD2",
"E": "ValE3",
"F": "ValF3"
}
]
到目前为止,我已经设法通过这样做来获取数组 C 中的所有对象:
json.DescendantsAndSelf().OfType<JObject>().Where(x => x.ContainsKey("C")).ToList()
解决方案
所以我想我是在 Abdus Salam Azad 和 Prasad Telkikar 的帮助下找到的:
json.DescendantsAndSelf().OfType<JObject>().Where(x => x.ContainsKey("D")).Where(x => x.Property("D").Value.ToString() == "ValD2").ToList()
谢谢大家!
推荐阅读
- javascript - 使用 defineProperty 继承 JavaScript 原型
- c# - GUIStyle.hover 状态是否适用于 Unity 编辑器标签(或除 Button 之外的其他控件)?
- python - 使用装饰器如何调用我的函数?
- python - 使用 pytest 时加载模块的根在哪里?
- reactjs - 如何在reactjs中的render方法中添加条件
- r - 调用 aaply 导致因子级别错误消息
- python - 您能否使用 Sklearn 的 Transformer API 持续跟踪列标签?
- android - 使用 GridLayout 在每个设备中显示相同大小的 Cardviews
- rest - REST API:PUT 到包含查询参数过滤器的资源是否可以接受?
- c++ - Boost::algorithms 是否被纳入标准库?