Demystifying the C# Yield-Return Mechanism: Listing 3.

Person class with yield-return filters.

class Person
{
  private string name;
  private int age;

  public Person(string name, int age)
  {
    this.name = name;
    this.age = age;
  }

  public string Name { get { return this.name; } }

  public int Age { get { return this.age; } }

  public override string ToString() { return name + " " + age; }

  public static IEnumerable<Person> GetYoung(IEnumerable<Person> source)
  {
    foreach (Person p in source) {
      if (p.age < 20)
        yield return p;
    }
  }
  public static IEnumerable<Person>
    GetStartWithA(IEnumerable<Person> source)
  {
    foreach (Person p in source) {
      if (p.name.StartsWith("A"))
        yield return p;
    }
  }
} // Person

About the Author

Dr. James McCaffrey directs the data science and research efforts at Quaetrix, a data analytics company located near Redmond, Washington. Before joining Quaetrix, James was a senior research engineer at Microsoft. James can be reached at [email protected].

comments powered by Disqus

Featured

  • Copilot AI Billing Shock Met with Meters, Caps and Token-Saving Tools

    GitHub is layering spending limits, expanded credit allowances and increasingly granular usage reporting onto Copilot, while Microsoft is reworking Visual Studio and VS Code to expose -- and reduce -- the cost of agentic development.

  • The AI-Powered Software Development Lifecycle

    René van Osnabrugge makes the case that AI's biggest opportunity in software development is not faster coding -- it's reducing the friction everywhere else in the SDLC.

  • Copilot Usage-Based Billing Gets a Token Dashboard

    Microsoft is keeping Visual Studio's new built-in Agent Skills switched off by default while a public dashboard measures whether their performance gains justify the additional tokens they may consume.

  • VS Code 1.129 Introduces Agent Host and Experimental Agents Window Editor

    Visual Studio Code 1.129 adds a dedicated process for running AI agent sessions and an experimental docked editor for reviewing agent-generated changes.

Subscribe on YouTube