繁体   English   中英

如何按 int 列表中的属性值过滤列表?

[英]How can you filter list by property value in an int list?

我已经定义了两个列表,现在想要通过与filterRIDS RID 值匹配的Application属性来过滤escHistory列表。

但是通过过滤escHistory的 LINQ,我得到的返回计数为零。 尽管该列表确实包含 Application 属性值与filterRIDS定义的值匹配的记录。

题:

如何按另一个列表中的属性值过滤列表?

这是过滤器代码的基本要点:

List<int> filterRIDS = new List<int> { 115841, 200463 };
List<Escalation> escHistory = new List<Escalation>();

//Filter list by RID's matching
escHistory = escHistory.Where(r => r.Application.Contains(filterRIDS.ToString())).ToList<Escalation>();

您交换了查询

escHistory = escHistory.Where(r => filterRIDS.Contains(int.Parse(r.Application))).ToList();

问题是filterRIDS.ToString()返回List<int>类的名称:

"System.Collections.Generic.List`1[System.Int32]"

当然,在“ Application字段中没有包含此值的历史记录对象。 如果要检查Application字符串是否包含给定列表中的任何字符串:

escHistory = escHistory
     .Where(r => filterRIDS.Any(id => r.Application.Contains(id.ToString())))
     .ToList();

我认为就是您要寻找的。 进行少量更改,即可将int列表转换为字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM