c# - Printing list of diverse objects -
i trying return combine list of 2 different list types. child class derived same base class doesn't have code. can see items in base class. but, supposed have.
class baseclass { //empty no code } class childclassa : baseclass { public string name {get; set;} public datetime dateaccess {get; set;} public childclassa(string name, datetime dateaccess){ name = name; dateaccess = dateaccess; } public list<childclassa> getlistmethod() { //block of code return list<childclassa>; // each items have name , dateaccess } } class childclassb: baseclass { public string group {get; set;} public datetime sessionduration {get; set;} public string report{get; set;} public childclassb(string group, datetime sessionduration, string report) { group = group; sessionduration = sessionduration; report = report; } public list<childclassb> getlistmethod() { //block of code return list<childclassb>; // each item has group, sessionduration , report } } class combinelistclass { public list<baseclass> getcombinelist() { list<baseclass> listfrombaseclass = new list<baseclass>(); childclassa = new childclassa(); var listfroma = a.getlistmethod(); childclassb b = new childclassb(); var listfromb = b.getlistmethod(); listfrombaseclass.addrange(listfroma); listfrombaseclass.addrange(listfromb); foreach(var item in listfrombaseclass) { //print item each listfrombaseclass // needs print name, dateaccess, group, sessionduration, report in 1 output file. } } }
you should check object type using "is" keyword , cast , display respectively proper values:
foreach(var item in listfrombaseclass) { //print item each listfrombaseclass // needs print name, dateaccess, group, sessionduration, report in 1 output file. if (item childclassa) { console.writeline(((childclassa)item).name); } else if (item childclassb) { console.writeline(((childclassb)item).group); } }
Comments
Post a Comment