Ich denke, es muss einen einfachen Weg geben, aber nicht finden. Ich möchte prüfen, ob eine Liste von Elementen (ganz oder teilweise) in einer anderen Liste erscheint.Linq: Zählen, wie oft eine Unterliste in einer anderen Liste erscheint
Zum Beispiel: Sagen wir, ich habe Leute in einer Abteilung als Liste 1. Dann habe ich eine Liste von Sportarten mit einer Liste von Teilnehmern in diesem Sport.
Jetzt möchte ich zählen, in wie vielen Sportarten erscheinen alle Leute einer Abteilung.
(ich weiß, dass einige Tabellen möglicherweise nicht sinnvoll, wenn es von einer Normalisierung Winkeln suchen, aber es ist einfacher, auf diese Weise, als zu versuchen und meine realen Tabellen zu erklären)
So habe ich so etwas wie diese:
var peopleInDepartment = from d in Department_Members
group d by r.DepartmentID into g
select new
{
DepartmentID = g.Key,
TeamMembers = g.Select(r => d.PersonID).ToList()
};
var peopleInTeam = from s in Sports
select new
{
SportID = s.SportID,
PeopleInSport = s.Participants.Select(x => x.PersonID),
NoOfMatches = peopleInDepartment.Contains(s.Participants.Select(x => x.PersonID)).Count()
};
Der Fehler hier ist, dass peopleInDepartment keine Definition für 'Enthält' enthält. Ich denke, ich brauche nur einen neuen Blickwinkel.
Als Endergebnis würde ich Print:
Abteilung 1: Die Abteilung beteiligt sich an drei Sport
Abteilung 2: Die Abteilung beteiligt sich an 0 Sport
usw.