如何按 int 列表中的 属性 值过滤列表?
How can you filter list by property value in an int list?
我定义了两个列表,现在想通过 Application
属性 匹配 filterRIDS
RID 值来过滤 escHistory
列表。
但是逐步执行过滤掉 escHistory
的 LINQ,我得到的 return 计数为零。尽管该列表确实包含 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>
的 returns 名称 class:
"System.Collections.Generic.List`1[System.Int32]"
当然,您没有在 Application
字段中包含此值的历史对象。如果要检查 Application
字符串是否包含给定列表中的任何字符串:
escHistory = escHistory
.Where(r => filterRIDS.Any(id => r.Application.Contains(id.ToString())))
.ToList();
我定义了两个列表,现在想通过 Application
属性 匹配 filterRIDS
RID 值来过滤 escHistory
列表。
但是逐步执行过滤掉 escHistory
的 LINQ,我得到的 return 计数为零。尽管该列表确实包含 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>
的 returns 名称 class:
"System.Collections.Generic.List`1[System.Int32]"
当然,您没有在 Application
字段中包含此值的历史对象。如果要检查 Application
字符串是否包含给定列表中的任何字符串:
escHistory = escHistory
.Where(r => filterRIDS.Any(id => r.Application.Contains(id.ToString())))
.ToList();