Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Your return-type is IEnumerable, so dont use a list. That makes IENumerable useless. Otherwise you dont make use of Lazy-Evaluation See: <a href="http://blogs.msdn.com/b/pedram/archive/2007/06/02/lazy-evaluation-in-c.aspx" rel="nofollow">http://blogs.msdn.com/b/pedram/archive/2007/06/02/lazy-evaluation-in-c.aspx</a></p> <p>better use yield return then:</p> <pre><code>private IEnumerable&lt;SMEntity&gt; ExtractSMData(List&lt;MSExcel.Range&gt; SMData) { foreach (MSExcel.Range Row in SMData) { SMEntity entity = new SMEntity(); entity.IncidentNumber = Row.get_Range("K1").get_Value(); entity.SRNumber = Row.get_Range("L1").get_Value(); entity.SRCategory = Row.get_Range("M1").get_Value(); entity.PickedUpBeforeClient = !Row.get_Range("Q1").get_Value().ToString().ToLowerCase() == "no" entity.RepairedOnTime = !Row.get_Range("W1").get_Value().ToString().ToLowerCase() == "no" entity.SiebelClientCall = EntityConversions.DateTimeConversion(Row.get_Range("N1").get_Value()); entity.SiebelOpenedDate = EntityConversions.DateTimeConversion(Row.get_Range("O1").get_Value()); entity.IncidentOpenDate = EntityConversions.DateTimeConversion(Row.get_Range("P1").get_Value()); entity.OutageStartTime = EntityConversions.DateTimeConversion(Row.get_Range("R1").get_Value()); entity.DetectionPoint = EntityConversions.DateTimeConversion(Row.get_Range("S1").get_Value()); entity.OutageEndTime = EntityConversions.DateTimeConversion(Row.get_Range("U1").get_Value()); entity.MTTR = EntityConversions.ConvertMTTRStringToInt(Row.get_Range("V1").get_Value()); entity.SecondsToDetection = EntityConversions.ConvertDetectionTimeToInt(Row.get_Range("T1").get_Value()); yield return entity; } } </code></pre> <p>You could also write it like this:</p> <pre><code>private IEnumerable&lt;SMEntity&gt; ExtractSMData(List&lt;MSExcel.Range&gt; SMData) { foreach (MSExcel.Range Row in SMData) { yield return new SMEntity { IncidentNumber = Row.get_Range("K1").get_Value(), SRNumber = Row.get_Range("L1").get_Value(), SRCategory = Row.get_Range("M1").get_Value(), PickedUpBeforeClient = !Row.get_Range("Q1").get_Value().ToString().ToLowerCase() == "no" RepairedOnTime = !Row.get_Range("W1").get_Value().ToString().ToLowerCase() == "no" SiebelClientCall = EntityConversions.DateTimeConversion(Row.get_Range("N1").get_Value()), SiebelOpenedDate = EntityConversions.DateTimeConversion(Row.get_Range("O1").get_Value()), IncidentOpenDate = EntityConversions.DateTimeConversion(Row.get_Range("P1").get_Value()), OutageStartTime = EntityConversions.DateTimeConversion(Row.get_Range("R1").get_Value()), DetectionPoint = EntityConversions.DateTimeConversion(Row.get_Range("S1").get_Value()), OutageEndTime = EntityConversions.DateTimeConversion(Row.get_Range("U1").get_Value()), MTTR = EntityConversions.ConvertMTTRStringToInt(Row.get_Range("V1").get_Value()), SecondsToDetection = EntityConversions.ConvertDetectionTimeToInt(Row.get_Range("T1").get_Value()) }; } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload