linq

时间:2016-06-21 09:45:53

标签: html linq

我尝试linq查询

<asp:DropDownList ID="regiondrop" runat="server" AutoPostBack="True" 
onselectedindexchanged="regiondrop_SelectedIndexChanged">
</asp:DropDownList> 

我尝试在下拉列表中显示不同的值 在页面加载。 我尝试这个查询来获取值

T1 tea = new T1();
var list1 = tea.t1.ToList();
var list = (from ta in list1
orderby ta.Region
select new { ta.Region,ta.RegionID }).Distinct().ToList();

但是这显示了所有相同的值,因为我想要不同的值

更新

我的方案数据中的

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

所以在这个加拿大和巴黎2次,所以我希望这次1次下拉

任何解决方案?

2 个答案:

答案 0 :(得分:1)

检查

var list1 = tea.t1
            .GroupBy(i => i.Region)
            .Select(i => new 
            {
                RegionID = i.Min(t => t.RegionID) // Or Max what you want
                Region = i.Key,                 
            })
            .OrderBy(i => i.Region).ToList();

答案 1 :(得分:0)

如果您希望通过类似属性的区域获取值,则可以使用GroupBy函数。

T1 tea = new T1();
var list1 = tea.t1.ToList();
var list = (from ta in list1
        orderby ta.Region
        select new { ta.Region, ta.RegionID })
        .GroupBy(g=>g.Region)
        .Select(g=>g.First())
        .ToList();

对于扩展方法:LINQ: Distinct values