我编写了一个查询来从表中获取结果。
var queryres = (from r in objTestEntities.module_where r.PID ==id select r).ToList();
try
{
for (int j = 0; j < queryres.Count; j++)
{
string sModuleName = queryres[j].Title;
int iModuleId = queryres[j].ModuleID;
string sVersion = queryres[j].VersionNo;
sModuleNameList.Add(new SelectListItem
{
Text = sModuleName,
Value = iModuleId.ToString(),
Selected = true
});
sVersionList.Add(new SelectListItem
{
Text = sVersion,
Value = sVersion,
Selected = true
});
}
ViewData["Module"] = sModuleNameList;
ViewData["Version"] = sVersionList;
}
现在我想要类型的sVersionList应具有不同的值。 但是从queryres变量我得到模块名称,不同的模块可以有相同的版本。
从版本列表组合中的上面的代码我得到多次相同的版本。
但我希望一个版本只能看一次。
我也尝试了这个:ViewData [“Version”] = sVersionList.Distinct(); 但是,由此我也无法在版本列表组合中显示distict值。
答案 0 :(得分:3)
var moduleNameList = queryres.Select(o => new SelectListItem
{
Text = o.Title, Value = o.ModuleID.ToString(), Selected = true
});
var versionList = queryres
.Select(o => o.VersionNo)
.Distinct()
.Select(o => new SelectListItem
{
Text = o, Value = o, Selected = true
});