我尝试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次下拉
任何解决方案?
答案 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