如何从DataQueryResult获取FirstOrDefault或转换为Enumerable/List?
C# 获取DataQueryResult首个结果的解决方案
首先要明确,DataQueryResult<T> 属于自定义封装类型,内部通常会包含存储结果集合的属性(常见命名如 Results、Items),需先获取该集合属性再进行后续操作。
1. 获取首个结果(FirstOrDefault)
假设 DataQueryResult<Agreement> 的集合属性名为 Results,直接调用 FirstOrDefault() 即可:
var _agreements = this.agreementRepository.GetAgreementsByQuery(_parameters); var firstAgreement = _agreements.Results.FirstOrDefault();
若不确定属性名,检查 DataQueryResult<T> 的定义,找到其中的集合类型成员(比如 IEnumerable<Agreement> 或 List<Agreement> 类型的属性),替换为对应名称即可。
2. 转换为List或IEnumerable
基于集合属性直接转换:
// 转换为List var agreementList = _agreements.Results.ToList(); // 转换为IEnumerable(若属性本身就是IEnumerable,直接使用即可) IEnumerable<Agreement> agreementEnumerable = _agreements.Results;
如果 DataQueryResult<T> 未公开集合属性,需要修改该类定义,添加公开成员暴露结果集合,或调整 GetAgreementsByQuery 方法直接返回集合类型。
内容的提问来源于stack exchange,提问作者Abdul
相关产品推荐
相关产品推荐

