C#実現foreach
3666 ワード
方法:一、既存のインタフェースを継承する:CollectionBase、DictionaryBase
二、yield return
class TestForeach: CollectionBase
{
public void Add(string val)
{
List.Add(val);
}
public void remove(string val)
{
List.Remove(val);
}
}
}
// TestForeach :
public void test()
{
TestForeach cols = new TestForeach();
cols.Add("Name");
cols.Add("Sex");
foreach (string col in cols)
{
MessageBox.Show("hello!" + col);
}
}
二、yield return
public IEnumerable Power(int number, int exponent)
{
int counter = 0;
int result = 1;
while (counter++ < exponent)
{
result = result * number;
yield return result;
}
}
private void testYield()
{
// Display powers of 2 up to the exponent 8:
foreach (int i in Power(2, 8))
{
//Console.Write("{0} ", i);
MessageBox.Show("hello!" + i);
}
}