在不相等的哈希集列表上过滤

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()