Linq-Konvertierung Von ICollection<T> Liste<T>

Ich bin mit Entity Framework Code First.

Ich bin mit dem folgenden einfachen Klassen:

public class Users
{
    public ICollection<Projects> Projects{get;set;}
}

public class Projects
{
    public ICollection<Users> Users{get;set;}
}

Ich bin das verwenden von linq für die Datenabfrage. Bei der Ausführung der folgenden Abfrage: (Beachten Sie, dass lstProjects ist ein List<Project>)

var lstUsers = (from users in lstProjects
                where users.ProjectId == pId
                select users.Users).ToList();

Ich habe eine List<Users> Objekt und möchten, füllen Sie diese Liste mit items. Wie,

var lstUsersToDisplay = new List<Users>();
lstUsersToDisplay = (List<Users>)lstUsers; //This can't be cast.

Was ist der Ansatz zu konvertieren ICollection<T> zu List<T>?

Zweitens habe ich List<Users> und wollen es zu konvertieren in ICollection<Users> wie erreichen?

Bearbeitet:
Szenario deutlicher ist, dass
Alle Projects geladen lstProjects und wir müssen wählen Sie die Users die abgebildet wurden, um ein bestimmtes Projekt. Diese Benutzer sind ebenfalls enthalten Projects als Sammlung. Jeder Project hat seine Users collection wie, wenn ich es zerlegt die lstProjects wie es sein würde:

lstProjects --> [0]-->//other Properties
ICollection[Users]-->[0]//Contains User class Properties
[1]....
[1] ... same procedure

Hoffe, es klärt das Szenario

Was ist lstProjects? Wenn es ein List<Project> dann haben Sie tatsächlich bekam eine List<Project> als lstUsers trotz Ihrer Namen. Wenn Sie den Mauszeiger über die var von var lstUsers in Visual Studio, was bedeutet es Ihnen zeigen? Und was ist die Fehlermeldung? Es würde wirklich helfen, wenn Sie hatte eine kurze, aber vollständige Programm demonstriert das problem. (Auch, warum Sie erstellen eine leere Liste und dann ignorieren Sie es? Warum bist du nicht einfach mit var lstUsersToDisplay = lstUsers;?)
mein entschuldigt bei der Eingabe grundsätzlich bin ich beim abrufen des users-Auflistung aus dem Projekt Liste. ich habe es geändert
So Ihr users range-variable ist eigentlich eine Project? Heilige verwirrende Namensgebung, Batman! Es klingt wie Sie haben jetzt eine List<ICollection<Users>>. Wieder, sollten Sie den Mauszeiger über die var um zu sehen, was Sie tatsächlich bekommen habe...

InformationsquelleAutor Hassaan | 2014-07-02

Schreibe einen Kommentar