读书人

“yield”的运用?不明白?

发布时间: 2012-08-30 09:55:54 作者: rapoo

“yield”的使用???不明白???
yield”的作用是什么??? 查了MSDN没看出问题。。。

实例:

var datasource = GetEnumerable(dicList).ToDataSource();

public IEnumerable<IDictionary> GetEnumerable(List<Dictionary<string, string>> SourceList)
{
for (int i = 0; i < SourceList.Count; i++)
{
var dict = new Dictionary<string, string>();
dict = SourceList[i];
yield return dict;

问题一:“yield”的作用是什么???

问题二:循环为“dict”执行扩展方法“ToDataSource”,是吗???问题


三:“GetEnumerable(dicList).ToDataSource();”返回的是“List<>”类型,有点不解。
}
}

public static class DataSourceCreator
{
private static readonly Regex PropertNameRegex =
new Regex(@"^[A-Za-z]+[A-Za-z1-9_]*$", RegexOptions.Singleline);
public static List<object> ToDataSource(this IEnumerable<IDictionary> list)
{
IDictionary firstDict = null;
bool hasData = false;
foreach (IDictionary currentDict in list)
{
hasData = true;
firstDict = currentDict;
break;
}


[解决办法]
yield 就是讲return结果加到返回的枚举中,比如

C# code
        private IEnumerable<int> Get_List()        {            for (int i = 0; i < 100; i++)            {                yield return i; //将i的值加到IEnumerable中            }        }调用IEnumerable<int> list = Get_List();list中就是从0-100的100个值
[解决办法]
探讨
yield 就是讲return结果加到返回的枚举中,比如

C# code


private IEnumerable<int> Get_List()
{
for (int i = 0; i < 100; i++)
{
yield return i; //将i的值加到I……

读书人网 >C#

热点推荐