Ich bin eine Liste aus einer Tabelle in der Datenbank abrufen:C# generische Liste als Funktionsparameter
var dependency = (from ctf in dc.Fields
join ctfd in dc.FieldsDependencies on ctf.id equals ctfd.Fieldid_depend
where ctf.ctid == ctid && ctf.fieldname == fieldname
select ctfd).ToList();
ich diese Liste als Parameter in einer anderen Funktion bin vorbei:
public void DoYesDeleteDepField<T>(string fieldname, List<T> dep)
Wie kann ich ändere es, damit ich das ID-Feld abrufen kann?
Aber ich kann nicht durch die Liste iterieren und das depsingle.id Feld erhalten.
foreach (var depsingle in dep)
{ var depsingleid = depsingle.id //ERROR
.....
Warum ist die Funktion generisch? Aus diesem Grund können Sie nicht auf bestimmte Typfelder zugreifen. T ist generisch und Sie versuchen, auf ein bestimmtes Feld in einem bestimmten Typ zuzugreifen. – user3185569
Meinst du 'var desingleid = depsingle.id'? – MotKohn
Nun, 'T' weiß nichts über eine 'ID' oder so, deshalb erhalten Sie einen Fehler. Sie müssten Ihrem Typ eine generische Integritätsregel hinzufügen, um nur Typen zuzulassen, die von Ihrer Basisklasse erben oder Ihre Schnittstelle implementieren. Oder lassen Sie Generika einfach weg, wenn Sie nur an einem einzigen Typ interessiert sind. – HimBromBeere