C#对GroupBy等聚合函数之前的字段进行动态测试
假设以下代码:C#对GroupBy等聚合函数之前的字段进行动态测试,c#,dynamic,C#,Dynamic,假设以下代码: var citizens = await _stateProvider.SelectWhere(whereParams); var retDto = new PercentGroupBy() { Total = citizens.Count, Elements = citizens.GroupBy(p => p.Content.Current.AggState.ToString(
var citizens = await _stateProvider.SelectWhere(whereParams);
var retDto = new PercentGroupBy()
{
Total = citizens.Count,
Elements = citizens.GroupBy(p => p.Content.Current.AggState.ToString()).ToDictionary(g => g.Key, g => g.Count())
};
return retDto;
公民是以下类别的列表:
public class Citizen {
public string ETag { get; set; }
public string Name{ get; set; }
public dynamic Content { get; set; }
}
测试“p.Content.Current.AggState”属性存在的最佳选项是什么
选择where可能会返回一些citizens,其中Content.Current为null,因此询问AggState会引发错误。Oops我在发布问题时找到了答案,因此这里是为了分享知识: 在“GroupBy”之前添加流体“Where”
var citizens = await _stateProvider.SelectWhere(whereParams);
var retDto = new PercentGroupBy()
{
Total = citizens.Count,
Elements = citizens
.Where(p => p.Content.Current != null)
.GroupBy(p => p.Content.Current.AggState.ToString())
.ToDictionary(g => g.Key, g => g.Count())
};
return retDto;