如何仅使用C#剃刀模板将唯一值显示在2sxc列表中?

问题描述

我使用2sxc App列出了职业卡。在每张卡上,我都有一个分配有类别的CSS类,以便可以使用侧栏中的按钮过滤列表。 (使用名为mixitup的JavaScript)。

因此,CSS类“ social-studies”可能会显示10次,Math可能会显示1次,Science可能会显示7次,具体取决于类别分配给职业的次数

对于侧边栏的过滤器按钮,我只想显示使用的过滤器。因此,如果我的类别是:

  1. 社会研究
  2. 数学
  3. 科学
  4. 体育教育
  5. 英语
  6. 历史

但是,如果仅使用社会研究,数学和科学,我只想显示这3个。

使用2sxc中的典型循环,我可以循环遍历每个实例,但这会创建一个包含重复的过滤器按钮的大列表。如何在c#剃刀中创建仅提供过滤器唯一实例的循环?

解决方法

这比我想的要容易。我发现了“ .Distinct()”

@foreach(var career in AsList(Data)) { 
            foreach(var schoolCategory in AsList(career.Categories as object).Distinct()){
                <button type="button" data-filter="@Html.Raw(".filter-" + schoolCategory.SchoolCategory.ToLower().Replace(" ","-"))" class="badge badge-secondary">@Html.Raw(schoolCategory.SchoolCategory)</button>
            }
        }