2013-12-03 4 views
0

Я хочу только отобразить список CourseNo без дубликатов с использованием LINQ, но я не могу полностью понять синтаксис.LINQ Эквивалент SELECT DISTINCT

 this.Distinct_CourseNo = (from c in Roster_Sections 
            select c).Distinct(CourseNo).ToList; 

SQL-эквивалент будет что-то вдоль линий:

SELECT DISTINCT CourseNo 
FROM Roster_Sections 

ответ

2

Все указанные ответы применимы только в том случае, если у вас есть moreLINQ. Тем не менее, вы можете попробовать это вместо:

this.Distinct_CourseNo = (from c in Roster_Sections 
          group c by c.CourseNo into g 
          select g.First()).ToList(); 
4

использованием select c будет включать в себя все столбцы в Roster_Sections, таким образом Distinct() не будет работать, если по крайней мере одна строка в колонке отличается от другой строки.

this.Distinct_CourseNo = (from c in Roster_Sections 
          select c.CourseNo).Distinct().ToList(); 

или

this.Distinct_CourseNo = Roster_Sections.Distinct(c => c.CourseNo).ToList(); 
+0

я получаю следующее сообщение об ошибке с помощью ваш метод Linq при условии: Не удается неявно преобразовать тип «System.Collections.Generic.List » к «System.Collections.Generic.List <Зачисление .Model.Sections> ' – cdalto

+0

try, 'this.Distinct_CourseNo = Roster_Sections.Select (c => c.CourseNo) .Distinct(). ToList();' –

+0

Хмм ... все еще получаю ту же ошибку. – cdalto

3

Вы бы пройти Distinct лямбда, описывающий то, что определяет отчетливость:

this.Distinct_CourseNo = Roster_Sections.Distinct(x => x.CourseNo).ToList(); 

Если вы имеете в виду, чтобы получить список уникальных номеров, конечно, в отличие от списка уникальных курсов, основанных на номере курса, 今 草 顿 웃 ответ - это путь.

Смежные вопросы