c# - 使用 Linq 访问另一个对象中的对象属性
问题描述
我需要从另一个对象中的对象获取值。我的问题是我无法从子对象中访问任何值,我总是得到对象类型本身的值。
我正在访问对象的代码
var test = scheduledTask.Fields.Select(x => x.FieldValue);
这将返回结果视图
[0] 10111
[1] {ObjectType.Extension}
我需要访问包含以下属性(以及其他属性)的 [1] 元素,并且我需要访问 DisplayName
{
DisplayName: "MainMenu",
CategoryId: -1,
Id: 433
}
计划任务是
{
Fields: {Fields.Field[2]},
LastModifiedDate:null,
{Fields.Field[2]}
}
解决方案
您不需要 LINQ 来访问数组的特定索引。
string name = (scheduledTask.Fields[1].FieldValue as ObjectType.Extension)?.DisplayName;
由于数组包含不同类型的值,我假设我们有一个object
. 因此,我们必须转换为预期的类型才能访问特定的字段或属性。
如果值为 null 或类型不匹配as
将产生null
。空条件运算符?.
仅在操作数为非空时执行成员或元素访问操作,否则返回null
。
如果您不知道所需值的索引,您可以查询
string name = (scheduledTask.Fields
.Select(x => x.FieldValue)
.OfType<ObjectType.Extension>()
.FirstOrDefault()
)?.DisplayName;
如果您确定所需的值存在且不为 null,则可以删除?
.
推荐阅读
- matlab - FastICA 实现.. Matlab
- python - 如何使用熊猫中的行和列的索引获取数据透视表条目
- ios - 我可以像这样自定义 UIPickerView 吗?
- python - 在 Qt 中结合数据和图形表示的最佳方式
- html - 是否有一个平台可以在没有 Mac 的情况下在高中课堂环境中为 iOS 开发 HTML5 应用程序?
- python - 将非类回调指向类方法
- ios - AVPlayerViewController 内存泄漏/保留周期?
- php - 使用 PHP 的嵌套数组 JSON
- docker - docker-compose healthcheck 无法以预期的方式工作,即先运行容器 a,然后运行容器 B
- java - 如何将一个 json 转换为 TestResult