迭代虽然数组不是问题,但是如果我只想在调用方法时才增加?
我甚至不确定这是否会起作用,但有更简单的方法可以做到这一点
int counter;
string[] myArray = {"foo", "bar", "something", "else", "here"};
private string GetNext()
{
string myValue = string.Empty;
if (counter < myArray.Length) {
myValue = myArray [counter];
} else {
counter = 0;
}
counter++;
return myValue;
}
Run Code Online (Sandbox Code Playgroud)
你想要的是一个迭代器
private IEnumerable<String> myEnumarable()
{
foreach(string i in myArray)
{
yield return i;
}
}
Run Code Online (Sandbox Code Playgroud)
但是只需调用myArray.GetEnumerator(); 具有相同的效果.
你用它
string[] myArray = { "foo", "bar", "something", "else", "here" };
IEnumerator<String> myEnum;
private string GetNext() //Assumes there will be allways at least 1 element in myArray.
{
if(myEnum == null)
myEnum = myArray.GetEnnumerator();
if(!myEnum.MoveNext())
{
myEnum.Reset();
myEnum.MoveNext();
}
return myEnum.Current;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |