enter code here
Ich habe GlobalTerms-Klasse, die eine Datenelement-Begriffe enthält, die eine Liste des Typs Term ist.Wie kann ich den Wert des Elements in IEnumerable mit Member in einer anderen Klasse abrufen?
Jede Term-Klasse hat 3 Mitglieder.
- int Id;
- bool IsApproved;
- Zeichenfolge Hinweis;
so sieht es aus wie:
Class GlobalTerms
{
IEnumerable<TermInfo> UserTerms;
}
Class TermInfo
{
public int Id { get; set; }
public string Note{ get; set; }
public bool IsApproved{ get; set; }
}
Wenn ich ein GlobalTerms Objekt (globalTerms), wie kann ich ein Objekt erhalten Term, wo der Status in Term Wahr ist gleich?
Ich habe versucht, so etwas zu schreiben:
GlobalTerms globalTerms = new GlobalTerms();
globalTerms.UserTerms.Where(x => x.IsApproved.Equals(true))
.Select(x => x.Id);
Meine Aufgabe, dass alle Elemente in UserTerms war die Überprüfung in IsApproved Feld wahr ist; Im Ergebnis habe ich Fehler erhalten: System.ArgumentNullException: Wert kann nicht null sein. Parametername: Quelle Vielen Dank im Voraus für Ihre Hilfe,
ANTWORT: Im Ergebnis dieses Problem gelöst wurde verwendet, um den nächsten Code:
*termsList* - is a IList<GlobalTerms>
foreach (var singleTerm in termsList)
{
var sourceTermsList = singleTerm.UserTerms.ToList();
foreach (var status in sourceTermsList)
{
status.IsApproved.Should().BeTrue();
}
}
Dank Jungs für alle,
Die NRE ist, weil 'GlobalTerms iTerms = neue GlobalTerms();' und dann 'iTerms.UserTerms.Where ....', Sie haben 'UsersTerms' in Ihrem Objekt nicht instanziiert, es ist' Null' und wann Sie versuchen, 'Where' darauf zu verwenden, erhalten Sie eine Ausnahme. Sobald das behoben ist, können Sie Ihre Bedingung zu 'Where (x => x.IsApproved)' – Habib
Ich hoffe, es ist so einfach, aber der obige Code würde nie etwas nützliches tun, ohne dass diese Liste von einer anderen Quelle bevölkert, so dass wir könnte nur relevanten Code fehlen. –
Habib, vielen Dank für deine Idee :) Es hilft mir, dieses Problem zu lösen. – Cindy