2016-06-22 5 views
1

Я пытаюсь получить различные значения в LINQ я попробовать это для этого первый я создать метод, а затем я называю этот метод загрузки страницы и назначитьразличные значения с помощью 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 

любое решение?

+0

Вы можете использовать 'Список .distinct()' с пользовательской компаратором на 'Region' собственности. ([link] (https://msdn.microsoft.com/en-us/library/bb920306%28v=vs.90%29.aspx)) – user5226582

ответ

2

Вы можете добавить GroupBy

var list = from ta in tempList 
      group ta by ta.Region into g 
      select g.FirstOrDefault(); 
+0

и пропущу это или нет? выберите новый {ta.Region, ta.RID}). Выберите (х => новый tbl1 { Id = x.RID, р = x.Region }). ToList() –

+0

привет .. когда я стараюсь как этот .. частный List getregion() { using (TrackDataEntities1 tee = new TrackDataEntities1()) { var tempList = tee.tblRegion_Uni.ToList(); var list = (от ta in tempList группа ta ta.Регион в g выберите новый {g.Key}); возвратный лист; } } –

+0

это показывает тот же выход. повторяющиеся значения в выпадающем списке –