private void YieldEx()
{
string goodTestData = "1 2 3 4 5 6 7";
foreach (int listItem in GetIntCollectionFromString(goodTestData))
MessageBox.Show(listItem.ToString());
string badTestData = "1 2 3 afdf 4 5 6";
foreach (int listItem in GetIntCollectionFromString(badTestData))
MessageBox.Show(listItem.ToString());
}
public IEnumerable<int> GetIntCollectionFromString(string stringToScan)
{
//Console.WriteLine("Preparing to scan string");
string[] tokens = stringToScan.Split(' ');
int intToAdd;
foreach (string token in tokens)
{
if (int.TryParse(token, out intToAdd))
{
yield return intToAdd;
}
else
{
yield break;
}
}
}