i returning ienumerable<object[]>
element function uses yield return
in loop.
public static ienumerable<object[]> getdata() { ... connection.open(); using (oledbdatareader dr = command.executereader()) { while (dr.read()) { object[] array = new object[dr.fieldcount]; dr.getvalues(array); yield return array; } } connection.close(); }
what's best way retrieve first element without using loop preferably?
var result = adapter.getdata();
in short:
enumerator=result.getenumerator(); enumerator.movenext(); enumerator.current;
this foreach in loop iterate through elements.
proper way:
using (ienumerator<object[]> enumerator = result.getenumerator()) { if (enumerator.movenext()) e = enumerator.current;
}
with linq:
var e = result.first();
or
var e = result.firstordefault(default);
also:
var e = result.elementat(0);
Comments
Post a Comment