C#-yield return实现数据迭代

yield其底层本质为迭代器,

所以yield return返回的是一个数据的迭代,

C#中一般用于返回一个IEnumerable对象的结果,

返回不会为空,若返回对象数据为空,会自动生成一个枚举值为0的对象,再返回,

yield return不会像return一样立即返回,每次yield return后都会回到主程序完成任务后,再回来继续执行后面的代码(按需获取数据)

示例代码:

        解释:获取需要的三个字符串对象数据后,通过yield return返回到测试方法进行测试,测试完成后,再返回继续执行。

        
        [TestCaseSource(typeof(Cases))]
        public void TestStringAdd(string str1, string str2, string str3)
        {
            Assert.AreEqual(str3, str1 + str2);
        }
    class Cases : IEnumerable
    {
        IEnumerator IEnumerable.GetEnumerator()
        {
            yield return new object[] { "lo", "ng", "long" };
            yield return new object[] { "ti", "me", "time" };
            yield return new object[] { "no", "see", "nosee" };
            //throw new NotImplementedException();
        }
    }

你可能感兴趣的:(C#基础与进阶,c#,开发语言)