Tuesday, November 11, 2014

[C#] yield


Original :
public IEnumerable<int> GetCollection(IEnumerable<int> myNumbers)
        {
            var filteredNumbers = new List<int>();
            foreach (var number in myNumbers)
            {
                if (number > 100)
                    break;
                else
                    filteredNumbers.Add(number);
            }
            return filteredNumbers.AsEnumerable();
        }

Use yield :
public IEnumerable<int> GetCollection(IEnumerable<int> myNumbers)
{
            foreach (var number in myNumbers)
            {
                if (number > 100)
                    yield break;
                else
                    yield return number;

            }
}


No comments:

Post a Comment