日期:2014-05-18  浏览次数:20736 次

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