我正在使用Linq来获取选择列表项的唯一成员。如何返回这个列表... 我有什么,现在是获取不同的SelectListItem
var queryResult = PatientList.Select(c => c).Distinct();
PatientList = (List<SelectListItem>)queryResult;
我收到第二行铸造错误。一个积极进取的年轻开发人员应该做什么?
我正在使用Linq来获取选择列表项的唯一成员。如何返回这个列表... 我有什么,现在是获取不同的SelectListItem
var queryResult = PatientList.Select(c => c).Distinct();
PatientList = (List<SelectListItem>)queryResult;
我收到第二行铸造错误。一个积极进取的年轻开发人员应该做什么?
尝试
PatientList = queryResult.ToList();
您版本使用的铸造,在这种情况下是不可能的,因为查询结果是不是列表。 ToList
基于它被调用的枚举构造一个新列表。它确实是这样的:
public static List<T> ToList<T>(this IEnumerable<T> collection)
{
return new List<T>(collection);
}
您必须确保,很明显,这PatientList
元素SelectListItem
类型,并注意Distinct()
将返回不同的对象,而与不同领域的项目。也就是说,如果在PatientList
中有两个独立构造的项目,其中Selected
,Text
和Value
属性相等,但由于调用Distinct()
,您仍然有两个项目。
此外,使用Select(c => c)
的原因是什么?它有效地注意到。
我不知道是什么类型的项目在你的清单,但你已经张贴你可以将列表
List<int> ages = new List<int> { 21, 46, 46, 55, 17, 21, 55, 55 };
IEnumerable<int> distinctAges = ages.Distinct();
添加.ToList()
如果你需要将其转换为一个列表
Distinct()
我是Linq noob。我发现这是非常有用的,被说。 当我删除它,我得到一个编译器错误。 – SoftwareSavant
看起来好像我没有得到不同的SelectListItems – SoftwareSavant