“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……