首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

“yield”的运用?不明白?

2012-08-30 
“yield”的使用???不明白???yield”的作用是什么???查了MSDN没看出问题。。。实例:var datasource GetEnumera

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

热点排行