我正在尝试为从TRACK_INFO表返回的每个不同值创建一个按钮。我想要返回的专栏是collegeOf专栏。现在,我得到了表格中每一行的按钮,而不仅仅是不同的按钮。有人可以帮忙吗?我是使用asp.net mvc的新手。下面是我的控制器代码,它返回了TRACK_INFO表中的行。
// GET: /Tracks/
public ActionResult Index()
{
var track_info = db.TRACK_INFO.Include(t => t.GRAD_CLEAR_SIG_DATE);
return View(track_info.ToList());
}
答案 0 :(得分:0)
您可以将Linq Distinct方法与自定义EqualityComparer一起使用(我在示例中假设collegeOf是一个字符串):
public class TrackInfoComparer : IEqualityComparer<TRACK_INFO>
{
public bool Equals(TRACK_INFO x, TRACK_INFO y)
{
if (x.collegeOf == y.collegeOf) //etc...
{
return true;
}
else
{
return false;
}
}
public int GetHashCode(Usuers obj)
{
return obj.IdUser.GetHashCode();
}
}
允许您过滤不同的记录:
var track_info = db.TRACK_INFO.Include(t => t.GRAD_CLEAR_SIG_DATE).Distinct(new TrackInfoComparer);
return View(track_info.ToList());
答案 1 :(得分:0)
您需要使用GroupBy
从列表中获取Distinct项目。
<强>代码:强>
public ActionResult Index()
{
var track_info = db.TRACK_INFO.Include(t => t.GRAD_CLEAR_SIG_DATE);
//Check the below code
return View(track_info.ToList().GroupBy(x => x.collegeOf).Select(y => y.First()));
}
可以找到参考here。