2
考慮以下幾點:爲什麼ShellTile.ActiveTiles.Count()在隨後的調用中返回不同的結果?
IEnumerable<ShellTile> pinnedtiles = ShellTile.ActiveTiles;
Console.WriteLine(pinnedtiles.Count());
Console.WriteLine(pinnedtiles.Count());
假設你有一個以上0 ActiveTiles,第一次調用COUNT()將返回正確的值,但第二次調用將返回0
如果你不設置ShellTile.ActiveTiles爲一個局部變量,它工作正常。我認爲這是因爲ActiveTiles實際上是內部類ShellTileEnumerator的一個實例,並且由於某種原因,當通過IEnumerable接口訪問時,它的行爲就像一個僅向前的枚舉器。看起來像一個可能的「陷阱」,或者我誤解了一些東西?