一个漂亮的迭代器

private IEnumerable<ChartDataItem> BatchCreateChartItems(double[] computedResult)
        {
            for (int i = 0; i < 4; i++)
            {
                yield return new ChartDataItem()
                {
                    Tag = i.ToString(),
                    Text = Dictionary.AlarmDictionary.AlarmCodeDescriptionDict[i.ToString()],
                    DValue = computedResult[i],
                    ItemBrush = (Brush)((IValueConverter)Application.Current.FindResource("GlobalAlarmStatusBrushConverter")).Convert( i, typeof(Brush), null, null)
                };
            }
        }

1、IEnumerable<ChartDataItem>:表示该方法返回一个枚举器

2、yield return:表示以迭代的方式向“该方法”的调用端返回值(使用这种语法的前提条件是:“该方法”的返回值类型必须为“枚举器”,并且“该枚举器”支持在集合上进行简单迭代。

3、new ChartDataItem(){。。。。。。},对象初始化器

 

简要说明:

IEnumerable<ChartDataItem>的“原型”就是IEnumerable<T>,说明如下:

IEnumerable<T> :它是一个公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代    ;    T:类型参数,它表示要枚举的对象的类型(例如:IEnumerable<ChartDataItem>,它要枚举的对象类型就是“ChartDataItem”)。

posted @ 2013-12-21 20:23  长白山  阅读(132)  评论(0)    收藏  举报