Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6889021
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T06:06:11+00:00 2026-05-27T06:06:11+00:00

I have a class that looks like this: public class TaughtSubject { public int

  • 0

I have a class that looks like this:

public class TaughtSubject
{
    public int TaughtSubjectId { get; set; }

    public int TeacherId { get; set; }
    public Teacher Teacher { get; set; }

    public int FormId { get; set; }
    public Form FormId { get; set; }

    public int SubjectId { get; set; }
    public Subject Subject { get; set; }
}

I received a list of these objects and I want to get the least occurring one by the SubjectId then by FormId. I also want to get back the first whole element. Not just the property.

Here is my attempt:

var teacher = taughtSubjects.GroupBy(t => t.SubjectId).OrderBy(g => g.Count()).Select(g => g.Key).First();

But this only returns the SubjectId. I want the whole teacher object and to also add the second sort condition FormId.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T06:06:11+00:00Added an answer on May 27, 2026 at 6:06 am

    You’re close. You need the first item of the Lookup (the result of the GroupBy you have), and then in the values for that element of the lookup you want to group by FormId and return the teacher(s) with the least-occurring one of those.

    var teachers = taughtSubjects
       .GroupBy(ts => ts.SubjectId)
       .OrderBy(g => g.Count())
       .ThenBy(g=>g.Key) //tiebreaker
       .First() //gets the IEnumerable of Teachers that teach this least-taught subject
       .GroupBy(t=>t.FormId)
       .OrderBy(g=>g.Count())
       .ThenBy(g=>g.Key) //as a tiebreaker
       .First() //gets the teacher(s) with the lowest specified FormId.
    

    This will return an IEnumerable of Teachers with at least one element, representing the teacher(s) who teach the least-taught subject with the least-used form.

    Understand that there may be Subjects in your system that aren’t taught at all. They will not be represented here, because no teacher exists that teaches the class. The query will only consider subjects with at least one teacher.

    EDIT: After rereading your question, I think I understand what’s going on. These “taught subjects” relate to a particular subject (math, reading, science, art, music) taught to a particular “form” or “grade level” (1st grade-12th grade in the US system).

    As you currently have your object set up, duplicate entries for the same subject and grade are possible, but they would be indistinguishable other than by the TaughtSubjectID field (which may just be assigned from a counter or identity).

    It would make more sense, no matter how you’d want this done, to also include the Teacher in the TaughtSubject. That would, for instance, allow you to list the teachers who teach the least-taught subject in the least-taught grade for that subject, or alternately as David B suggests, the least-taught overall combination of subject and grade.

    Which one you want is subjective, and there is a semantic difference. It is possible for Music to be the least-taught subject (only offered to 9th-12th graders), but for there to be two or three teachers teaching it at every grade level. Math on the other hand may be taught at every grade level with a high number of teachers overall and thus have a higher number of TaughtSubject records than Music, but there may only be one 6th-grade Math teacher out of the whole group. Finding the least-taught grade of the least-taught subject would give you 9th-grade Music. Finding the least-taught overall subject-grade combination would give you 6th grade Math.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a Java class that looks like this: public class My_ABC { int
I have a class that looks like this: public class MyModel{ public int TheId
I have a class that looks like this public class SomeClass { public SomeChildClass[]
I have a class that looks like this: public class TextField : TextBox {
I have a class that looks like this: public class BasePadWI { public WorkItem
Currently I have a class that looks like this: public class MyClass : IMyClass
I have a class that roughly looks like this: public class ViewModel { public
Assume I have a class that looks like this: class Sample { public string
I have a program that looks something like this: public partial class It {
I have code that looks like this: template<class T> class list { public: class

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.