在不相等的哈希集列表上过滤
Filter on Unequal Hash Set List
我有哈希集 1-7。
这些Hashset响应9个priorityCodes;
哈希集值1表示1、2和3
哈希集是过滤值,除了哈希集中的第一个值对应三个优先级代码。
如何在此过滤我的列表?有没有办法基本上做一个“如果 hashSet 的值为 1 将其转换为 priorityCode 1-3?
这是它过去的工作方式,但设计更改为表示 1-7,而 database/backend 中设置的优先级代码值保持不变。
private static IEnumerable<TabularScheduledItemViewModel> FilterByPriority(
ICollection<int> hashSet,
IEnumerable<TabularScheduledItemViewModel> jobList)
{
if (hashSet.Contains(1))
{
}
return priorityFilter.Count == 0
? jobList
: jobList.Where(c => priorityFilter.Any(o => o == c.PriorityCode));
}
UI 看起来如何
您的代码中没有任何内容看起来像哈希集。据我了解这个问题,您收到了来自数据库的 1..9 范围内的数字集合,并且您希望通过折叠前 3 个数据库值将其映射到 UI 的范围 1..7变成 1 并将其余的向下移动。你可以这样做,例如在您的函数开头换行:
var mapped = hashSet.Select(i => i <= 3 ? 1 : i - 2).ToHashSet();
然后使用 mapped
而不是 hashSet
。请注意,这为您提供了一个真正的哈希集,因此输入中的重复值会被折叠。如果您不希望这样,请改用 .ToList()
或 .ToArray()
。
我有哈希集 1-7。
这些Hashset响应9个priorityCodes;
哈希集值1表示1、2和3
哈希集是过滤值,除了哈希集中的第一个值对应三个优先级代码。
如何在此过滤我的列表?有没有办法基本上做一个“如果 hashSet 的值为 1 将其转换为 priorityCode 1-3?
这是它过去的工作方式,但设计更改为表示 1-7,而 database/backend 中设置的优先级代码值保持不变。
private static IEnumerable<TabularScheduledItemViewModel> FilterByPriority(
ICollection<int> hashSet,
IEnumerable<TabularScheduledItemViewModel> jobList)
{
if (hashSet.Contains(1))
{
}
return priorityFilter.Count == 0
? jobList
: jobList.Where(c => priorityFilter.Any(o => o == c.PriorityCode));
}
UI 看起来如何
您的代码中没有任何内容看起来像哈希集。据我了解这个问题,您收到了来自数据库的 1..9 范围内的数字集合,并且您希望通过折叠前 3 个数据库值将其映射到 UI 的范围 1..7变成 1 并将其余的向下移动。你可以这样做,例如在您的函数开头换行:
var mapped = hashSet.Select(i => i <= 3 ? 1 : i - 2).ToHashSet();
然后使用 mapped
而不是 hashSet
。请注意,这为您提供了一个真正的哈希集,因此输入中的重复值会被折叠。如果您不希望这样,请改用 .ToList()
或 .ToArray()
。