首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取不同的SelectListItem

获取不同的SelectListItem
EN

Stack Overflow用户
提问于 2011-08-31 20:20:16
回答 2查看 935关注 0票数 0

我使用Linq仅获取选择列表项的唯一成员。如何返回此列表...我现在所拥有的是

代码语言:javascript
复制
    var queryResult = PatientList.Select(c => c).Distinct();
    PatientList = (List<SelectListItem>)queryResult;

我在第二行收到了一个强制转换错误。一个有进取心的年轻开发人员应该做什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-31 20:21:58

试一试

代码语言:javascript
复制
PatientList = queryResult.ToList();

您的版本使用了强制转换,这在本例中是不可能的,因为查询结果不是列表。ToList根据调用它所针对的枚举对象构造一个新的列表。它是这样做的:

代码语言:javascript
复制
public static List<T> ToList<T>(this IEnumerable<T> collection)
{
    return new List<T>(collection);
}

显然,您必须确保PatientList元素的类型为SelectListItem,并且要知道Distinct()将返回不同的对象,但不会返回具有不同字段的项。也就是说,如果在PatientList中有两个独立构造的条目,它们具有相同的SelectedTextValue属性,那么由于Distinct()调用,仍然会有两个条目。

另外,使用Select(c => c)的原因是什么?它实际上什么也不做。

票数 1
EN

Stack Overflow用户

发布于 2011-08-31 20:28:27

我不知道你列表中的项目是什么类型的,但是对于你发布的内容,你可以直接在列表上调用Distinct()

代码语言:javascript
复制
  List<int> ages = new List<int> { 21, 46, 46, 55, 17, 21, 55, 55 };

    IEnumerable<int> distinctAges = ages.Distinct();

如果需要将其转换为列表,则添加.ToList()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7256824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档