引言 最近翻看了之前的学习笔记,看到foreach,记得当时老师讲的时候,有点犯浑,不是很明白,这好比,上小学时,你不会乘法口诀,但是随着时间的增长,你不自觉的都会了,也悟出个小道理,有些东西,你当时不太懂,但随着你的阅历和经验的增长,有那么一天你会恍然大悟,哦,原来是这样. 自定义集合类 提到foreach就不得不说集合,那么就先从自定义的集合开始吧. using System; using System.Collections.Generic; using System.Linq; usin…
集合部分 参考:http://msdn.microsoft.com/zh-cn/library/0ytkdh4s(v=vs.110).aspx 集合类型是诸如哈希表.队列.堆栈.包.字典和列表等数据集合的常见变体.集合基于 ICollection 接口.IList 接口.IDictionary 接口,或其泛型集合中的相应接口.每一个元素只包含一个值. IList 接口和 IDictionary 接口都是从 ICollection 接口派生的:因此,所有集合都直接或间接基于 ICollection…
一般来说当我们创建自定义集合的时候为了让其能支持foreach遍历,就只能让其实现IEnumerable接口(可能还要实现IEnumerator接口) 但是我们也可以通过使用yield关键字构建的迭代器方法来实现foreach的遍历,且自定义的集合不用实现IEnumerable接口 注:虽然不用实现IEnumerable接口 ,但是迭代器的方法必须命名为GetEnumerator() ,返回值也必须是IEnumerator类型 实例代码以及简单说明如下: class Person { publi…
1.IEnumerator和IEnumerable的作用 其实IEnumerator和IEnumerable的作用很简单,就是让除数组和集合之外的类型也能支持foreach循环,至于foreach循环,如果不清楚,请参考C# foreach循环较for循环的优势与劣势 代码如下: static void Main(string[] args) { CatList cats = new CatList(); foreach (var cat in cats) { Console.WriteLine…
IEnumerator和IEnumerable的作用 其实IEnumerator和IEnumerable的作用很简单,就是让除数组和集合之外的类型也能支持foreach循环,至于foreach循环,如果不清楚,请参考C# foreach循环较for循环的优势与劣势 代码如下: static void Main(string[] args) { CatList cats = new CatList(); foreach (var cat in cats) { Console.WriteLine(c…
16.1 更多集合接口 集合类(这里指IEnumerable层次结构)实现的接口层次结构 16.1.1 IList<T>与IDictionary<TKey,TValue> 字典类一般只按照键进行索引,而不按位置索引. 列表"键"总是一个整数,"键集"总是从0开始的非负整数的一个连续集合. 解决数据存储或数据获取问题时,考虑 ], list[6]); list.Remove("Grumpy"); 16.2.3 搜索List&…
常用集合类及构建自定义集合 1.更多集合接口:IList<T>.IDictionary<TKey,TValue>.IComparable<T>.ICollection<T> 2.主要集合类:List<T>.IDictionary<TKey,TValue>.SortedDictionary<TKey,TValue>和SortedList<T>        Stack<T>.Queue<T>…
原文:Android零基础入门第42节:自定义BaseAdapter 在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作.也就是说,这个ListView不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点.读者可以试试用SimpleAdapter添加一个按钮到ListView的条目中,会发现可以添加,但是却无法获得焦点,点击操作被ListView的Item所覆盖.这时候最方便的方法就是使用灵活的适配器BaseAdapter了. 一.使用B…
下面的代码示例演示如何实现自定义集合的 IEnumerable 和 IEnumerator 接口: using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { public class Person { publ…
Map集合的特点 1.Map集合中保存的都是键值对,键和值是一一对应的 2.一个映射不能包含重复的值 3.每个键最多只能映射到一个值上 Map接口和Collection接口的不同 Map是双列集合的根接口,Collection是单列集合的根接口 1.Map是双列的(是双列集合的根接口),Collection是单列的(是单列集合的根接口) 2.Map的键是唯一的,Collection的子接口Set是唯一的 3.Map集合的数据结构值针对键有效,跟值无关:如:TreeMap:键是用二叉树算法,Has…