我需要根据这个复杂的对象过滤IEnumerable列表。我需要在其中一个嵌套字典元素上执行比较运算符。现在我在父对象上有一个where子句。如何构造linq扩展方法来过滤内部词典中的一个关键元素?
/* Object */
public class AuditData
{
public string Agent { get; set; }
public AuditDataAction Action { get; set; }
}
/* Inner Object */
public class AuditDataAction
{
public AuditDataAction()
{
Data = new List<Dictionary<string, Dictionary<string, object>>>();
}
public IList<Dictionary<string, Dictionary<string, object>>> Data { get; set; }
}
/* Code */
var myData =
auditRepository.GetAuditEntriesFor(new AuditData {Rim = rimNo})
.Where(d => d.Action.Adjent == "111").ToList();
答案 0 :(得分:0)
要配对IEnumerable中的项目,我需要查看其中一个词典中的数据,看看是否存在密钥才能做出此决定。这是一个说明数据结构外观的声明。如果KeyOfInterest存在,我希望保留list元素。
auditData.Action.Data =
new List<Dictionary<string, Dictionary<string, object>>>
{
new Dictionary<string, Dictionary<string, object>>
{
{
"KeyOfInterest", new Dictionary<string, object>
{
{"Key1", value1},
{"Key2", value2}
}
}
}
};