从MVC 4中的列表中删除重复项

时间:2014-12-04 19:13:07

标签: c# asp.net-mvc-4 foreach duplicate-removal

这是我的代码,用于将数据从我的数据库显示为下拉列表。我正在寻找一种方法来删除重复项,以便只显示每个重复项的一个实例。有人知道一个简单的方法吗?

@model IEnumerable<bookingsMVC.Models.member>
<select id="myTown">

 @foreach (var item in Model)
 {

  <option id="@Html.DisplayFor(model => item.town)" value="@Html.DisplayFor(model => item.town)"> @Html.DisplayFor(model => item.town)</option>


 }
</select>

型号:

namespace bookingsMVC.Models
{
public class member
{
    public int ID { get; set; }
    public string username { get; set; }
    public string fname { get; set; }
    public string lname { get; set; }
    public string address1 { get; set; }
    public string address2 { get; set; }
    public string town { get; set; }
    public string postcode { get; set; }
    public string phone { get; set; }
    public string email { get; set; }     
    public string password { get; set; }
    public string memcat { get; set; }
    public string Admin { get; set; }
}
}

2 个答案:

答案 0 :(得分:2)

您可能希望在控制器中执行此操作并管理不同城镇的实际过滤,这样您只需将具有不同城镇值的列表传递给您的viewmodel

答案 1 :(得分:1)

通常,要保留完整的Item对象,您可以GroupBy使用First()来检索每个组中的第一个:

@foreach (var item in Model.GroupBy(m => m.town).Select(g => g.First()))
...