使用LINQ获取不同的值

3
我尝试在LINQ中获取不同的值,我尝试了以下方法:首先我创建了一个方法,然后在页面加载时调用此方法并分配。
regiondrop.DataSource = getregion();
regiondrop.DataSourc=DataTextField="Region"
regiondrop.DataSourc==DataTextField="RID"


 private List<tab1> getregion()
        {
            using (T1 tee = new T1())
            {
            var tempList = tee.tbl1.ToList();
            var list = (from ta in tempList
            select new { ta.Region, ta.RID }).Select(x => new tbl1
            {
             Id = x.RID,
             reg=x.Region
             }).ToList();
            return list;
            }

        }

数据库中的数据类似于以下格式

RID Region
1   Canada
2   UK
3  London
4  Paris
5  UK
6  Brazil
7  London

下拉菜单中的数据如下:
Canada
UK
London
Paris
UK
Brazil
London

但我希望获得这样的数据。
Canada
UK
London
Paris
Brazil

有任何解决方案吗?


你可以在 Region 属性上使用自定义比较器来使用 List<T>.Distinct()。(链接) - user5226582
1个回答

2
您可以添加一个 GroupBy
var list =  from ta in tempList
            group ta by ta.Region into g
            select g.FirstOrDefault();

你会省略这条语句吗?选择新的 { ta.Region, ta.RID }。然后选择新的 tbl1,并将其设置为: { Id = x.RID, reg=x.Region } 最后转换为列表。 - SUPER_USER
你是否绑定到正确的列表?调试一下这个列表。 - wake-0
是的,当我设置断点时,列表中有数据。 - SUPER_USER
当我检查tempList中的7条记录和list中的7条记录时,它们的数据是相同的。 - SUPER_USER
1
是的,这个工作可以。 - SUPER_USER
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接