删除下拉列表中的重复项,组项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除下拉列表中的重复项,组项相关的知识,希望对你有一定的参考价值。

在我的MVC cshtml页面中,我有一组通过Model传入的记录。我想将值放在一列中,并在下拉列表/选择中显示唯一值。我收到一个错误:

Unable to cast object of type 'Grouping System.String,VrsDataModel.Data.AuditItem]' to type 'VrsDataModel.Data.AuditItem'...

我的代码:

<select class="form-control" id="userSearch">
    <option></option>
    @foreach (AuditItem ai in Model.GroupBy(ai => ai.UserLogin))
    {
        <option value="@ai.UserLogin.ToName()">@ai.UserLogin.ToName()</option>
    }
</select>
答案

错误消息告诉您“ai”变量不是“AuditItem”类型。看看GroupBy方法的定义(我假设这是“Linq”方法)。它返回类型“IEnumerable<IGrouping<TKey, TElement>>”,因此“ai”将是“IGrouping<TKey, TElement>”,其中TKey将是“UserLogin”属性的类型,而TElement是“模型”的任何类型。您可以使用“ai.Key”来获取分组值,并且可以通过迭代“ai”的内容来枚举分组的项目。

如果您只想要不同的值,请尝试“Model.Select(x=>x.UserLogin.ToName()).Distinct()”。

以上是关于删除下拉列表中的重复项,组项的主要内容,如果未能解决你的问题,请参考以下文章

Excel技巧--做一去重复的数据下拉列表

从 Ocaml 中的列表列表中删除重复项?

删除列表中的最大值,保留重复项

隐藏或删除下拉列表中的重复选项

用另一个列表替换主活动中的列表并从视图中删除旧列表

删除列表python中的重复项[重复]