C# 经典入门12章-System.Collections.Generic命名空间
System.Collections.Generic命名空间,包含处理集合的泛型类型。
添加一个新类 Vector.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Ch12Ex03 { public class Vectors:List<Vector> { public Vectors() { } public Vectors(IEnumerable<Vector>initialItems) { foreach(Vector vector in initialItems) { Add(vector); } } public string Sum() { StringBuilder sb=new StringBuilder(); Vector currentPoint=new Vector(0.0,0.0); sb.Append("origin"); foreach(Vector vector in this) { sb.AppendFormat(" +{0}",vector); currentPoint+=vector; } sb.AppendFormat(" ={0}",currentPoint); return sb.ToString(); } } }
再次添加新类Vectordelegates.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Ch12Ex03 { public class VectorDelegates { public static int Compare(Vector x, Vector y) { if (x.R > y.R) { return 1; } else if (x.R < y.R) { return -1; } return 0; } public static bool TopRightQuadrant(Vector target) { if (target.Theta >= 0.0 && target.Theta <= 90.0) { return true; } else { return false; } } } }
Program.cs的代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Ch12Ex03 { class Program { static void Main(string[] args) { Vectors route = new Vectors(); route.Add(new Vector(2.0,90.0)); route.Add(new Vector(1.0, 180.0)); route.Add(new Vector(0.5, 45.0)); route.Add(new Vector(2.5, 315.0)); Console.WriteLine(route.Sum()); Comparison<Vector> sorter=new Comparison<Vector> (VectorDelegates.Compare); route.Sort(sorter); Console.WriteLine(route.Sum()); Predicate<Vector> searcher = new Predicate<Vector>(VectorDelegates.TopRightQuadrant); Vectors topRightQuadrantRoute = new Vectors(route.FindAll(searcher)); Console.WriteLine(topRightQuadrantRoute.Sum()); Console.ReadKey(); } } }
Dictionary<k,v>定义键值对的集合。