Yield we will use when we want to return a collection (i.e. IEnumerable).

For example small console application:

namespace Yield
{
  using System;
  using System.Collections.Generic;

  class Program
  {
    static void Main(string[] args)
    {
      IEnumerable<string> aaa;
      foreach (var a in YieldTest())
      {
        Console.WriteLine(a);
      }
      Console.ReadKey();
    }

    private static IEnumerable<string> YieldTest()
    {
      string[] myTestsStrings = new[] { "One", "Two" };

      foreach (var myTest in myTestsStrings)
      {
        yield return myTest;
      }
    }
  }
}

As a result we will see something like:

One
Two

Note line:

yield return myTest;

If we remove "yield" from that line, we will receive the error:

Cannot implicitly convert type 'string' to 'System.Collections.Generic.IEnumerable<string>'

Our YieldTest method can look like:

private static IEnumerable<string> YieldTest()
{
	string[] myTestsStrings = new[] { "One", "Two" };

	foreach (var myTest in myTestsStrings)
	{
		return new[] { myTest };
	}
	return null;
}

Notice that instead of:

yield return myTest;

Now we have:

return new[] { myTest };

Which will give as result something like:

One

Just one record.