使用ReSharper可以将foreach循环代码块标记并转换为for循环吗?
还是使用Visual Studio?
谢谢!
使用ReSharper可以将foreach循环代码块标记并转换为for循环吗?
还是使用Visual Studio?
谢谢!
没错,ReShaper可以做到。我在VS2010 + R#5中进行了测试。
之前:
var a = new int[] {1, 2, 3, 4};
foreach (var i in a)
{
}
之后:
var a = new int[] {1, 2, 3, 4};
for (int index = 0; index < a.Length; index++)
{
var i = a[index];
}
现在甚至可以不使用Resharper来完成这个操作(已在C#项目上测试过Visual Studio 2017):
int[] array = new int[3] { 1, 2, 3 };
foreach (int item in array)
{
int someVariable = item;
//Your logic
}
int[] array = new int[3] { 1, 2, 3 };
for (int i = 0; i < array.Length; i++)
{
int item = array[i];
int someVariable = item;
//Your logic
}
⌥↵
来调用它(与Rider调用上下文操作或意图相同)。 - KenIchi这个功能很好,就像 rdkleine 说的一样,示例运行得很好。
但是:如果你的集合只是一个简单的 IEnumerable<T>
,它不会(合理地)工作。