我只想使用LINQ显示一个没有重复项的CourseNo列表,但是我无法完全理解语法。
this.Distinct_CourseNo = (from c in Roster_Sections
select c).Distinct(CourseNo).ToList;
SQL等价物将是:
SELECT DISTINCT CourseNo
FROM Roster_Sections
答案 0 :(得分: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();
答案 1 :(得分:3)
你传递Distinct
描述清晰度定义的lambda:
this.Distinct_CourseNo = Roster_Sections.Distinct(x => x.CourseNo).ToList();
如果你想获得一个独特的课程编号列表而不是一个基于课程编号的独特课程列表,今草顿웃的答案是要走的路。
答案 2 :(得分:3)
只有拥有moreLINQ时,所有提供的答案才适用。但是,您可以尝试这样做:
this.Distinct_CourseNo = (from c in Roster_Sections
group c by c.CourseNo into g
select g.First()).ToList();