I have a working foreach as follows.
List<Thing> things = new List<Thing>();
foreach (Original original in originals)
things.Add(new Thing(orignal));
Then I got smart and LINKified in the following code still working .
IEnumerable<Thing> things = originals.Select(origo => new Thing(origo));
Feeling really proud of the reduction in the number of lines, as well as LINQing for clearer code, I realized that there is also a requirement to update the process table. It is necessary that the update happen simultaneously when we go through the transformation. So, with my tail between my legs and a feeling of much less pride, I went back to the source code and added a notification method.
List<Thing> things = new List<Thing>();
foreach (Original original in originals)
{
things.Add(new Thing(orignal));
DoTell();
}
, LINQie - - . , (, , ). - , .