@dovid
ניסיתי לבדוק באמצעות Queue ו-List, וקראתי להם בצורה הזו:
TestQueue t = new TestQueue();
Console.WriteLine(t.Select(t =>
{
Console.WriteLine(t.i);
return t;
}).Last().i);
TestList t2 = new TestList();
Console.WriteLine(t2.Select(t =>
{
Console.WriteLine(t.i);
return t;
}).Last().i);
בפועל זאת התוצאה:
got here 1
1
got here 2
2
got here 3
3
got here 4
4
got here 5
5
got here 5
5
got here 1
1
got here 2
2
got here 3
3
got here 4
4
got here 5
5
got here 5
5
ההנחה שלי היתה שזאת בדיקה טובה בגלל שselect לא חייב לרוץ על שום אלמנט חוץ מהאחרון, ובqueue אי אפשר לגשת לפי אינדקס.
אז אני מניח שהבדיקה שלי היא הבעייתית, למה בList לא היתה טעינה עצלה רק של הערך האחרון?





(לכן יש 10 מחרוזות ריקות, הכלום הזה נמצא גם לפני התו הראשון וגם אחרי האחרון)