我已經在使用該功能倒車
static IEnumerable<Func<int>> MakeEnumerator(int[] values)
{
for (int a = 0; a < values.Length; a++)
{
yield return() => Values[a];
}
}
我不能再反向此使用LINQ或轉換爲數組沒有所有的值成爲最後一個函數創建的ienumarable lambda函數lambda函數的ienumarable。 示例代碼(注意,這只是說明了問題它不是在應用程序代碼):
int[] start = {1,2,3};
IEnumerable<Func<int>> end = MakeEnumerator(start).Reverse<Func<int>>();
foreach (Func<int> i in end)
{
Console.WriteLine(i());
}
我認爲這個問題是在MakeEnumerator功能。我將如何修改它以使其工作或編寫可用的替換反向函數。
像Resharper這樣的代碼檢測工具會在這種情況下顯示一個警告,並且通常會提出一個建議的解決方案。 –