How to loop through properties of objects in c#? -


i have method gets values of properties of object , appends commas it. want make generinc can use other objects.

            foreach (var row in rows.tolist())             {                 sbresult.append(                     delimiter + row.medianame + delimiter + separator +                     delimiter + row.countryname + delimiter + separator +                     delimiter + row.itemoverridedate + delimiter + separator +                     delimiter + row.rating + delimiter + separator +                     delimiter + row.batchno + delimiter + separator +                     delimiter + row.noinbatch + delimiter + separator +                     delimiter + row.batchdate + delimiter + separator +                     delimiter + row.datatype + delimiter + separator +                     delimiter + row.byline + delimiter + separator +                     delimiter + row.issueno + delimiter + separator +                     delimiter + row.issue + delimiter + separator +                     delimiter + row.messageno + delimiter + separator +                     delimiter + row.message + delimiter + separator +                     delimiter + row.sourcename + delimiter + separator +                     delimiter + row.sourcetype + delimiter + separator);                  //end of each row                 sbresult.appendline();             } 

i have tried using var rowdata = row.gettype().getproperties(); returns property , dont know how value of property.

since type.getproperties returns collection of propertyinfo, follow calling propertyinfo.getvalue. here's how can (and rest together) linq:

var line = string.join(              row.gettype().getproperties()               .select(pi => pi.getvalue(row))               .select(v => delimiter + v.tostring() + delimiter),              separator); 

however, might want reconsider approach. code break if getproperties fetches static properties or indexers along "normal" properties; requires code run full trust (otherwise no reflection possible). , finally, it's going slow because a) reflection inherently slow , b) keep reflecting on same things on , on again without caching of information has discovered.

in addition above potential problems, if there remote chance later want filter gets printed out better encapsulate logic inside (virtual?) method on row , like

sbresult.appendline(row.serializeasline()); 

Popular posts from this blog

How to calculate SNR of signals in MATLAB? -

c# - Attempting to upload to FTP: System.Net.WebException: System error -

ios - UISlider customization: how to properly add shadow to custom knob image -