1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4:
5: class Customer
6: { 7:
8: string customerID;
9: string contactName;
10: string city;
11:
12: public string CustomerID
13: { 14: get { return customerID; } 15: set { customerID = value; } 16: }
17:
18: public string ContactName
19: { 20: get { return contactName; } 21: set { contactName = value; } 22: }
23:
24: public string City
25: { 26: get { return city; } 27: set { city = value; } 28: }
29: }
30: class Driver
31: { 32: static void Main(string[] args)
33: { 34: List<Result> results = new List<Result>();
35: foreach (Customer c in LoadCustomers())
36: { 37:
38: if (c.City.StartsWith("M")) 39: { 40: Result res = results.Find(delegate(Result r)
41: { return c.City == r.City; }); 42:
43: if (res == null)
44: { 45:
46: res = new Result();
47: res.City = c.City;
48: res.Count = 1;
49: results.Add(res);
50: }
51: else
52: { 53:
54: res.Count++;
55: }
56: }
57: }
58: foreach (Result r in results)
59: { 60: Console.WriteLine("City:{0}\tCount:{1}", r.City, r.Count); 61: }
62: }
63:
64: static IEnumerable<Customer> LoadCustomers()
65: { 66:
67: List<Customer> custs = new List<Customer>();
68:
69: Customer c = new Customer();
70: c.CustomerID = "ALFKI";
71: c.ContactName = "Maria Anders";
72: c.City = "Berlin";
73: custs.Add(c);
74:
75: #region many customers ...
76:
77: c = new Customer();
78: c.CustomerID = "ANATR";
79: c.ContactName = "Ana Trujillo";
80: c.City = "México D.F.";
81: custs.Add(c);
82:
83: c = new Customer();
84: c.CustomerID = "ANTON";
85: c.ContactName = "Antonio Moreno";
86: c.City = "México D.F.";
87: custs.Add(c);
88:
89: c = new Customer();
90: c.CustomerID = "AROUT";
91: c.ContactName = "Thomas Hardy";
92: c.City = "London";
93: custs.Add(c);
94:
95: c = new Customer();
96: c.CustomerID = "BERGS";
97: c.ContactName = "Christina Berglund";
98: c.City = "Luleå";
99: custs.Add(c);
100:
101: c = new Customer();
102: c.CustomerID = "BLAUS";
103: c.ContactName = "Hanna Moos";
104: c.City = "Mannheim";
105: custs.Add(c);
106:
107: c = new Customer();
108: c.CustomerID = "BLONP";
109: c.ContactName = "Frédérique Citeaux";
110: c.City = "Strasbourg";
111: custs.Add(c);
112:
113: c = new Customer();
114: c.CustomerID = "BOLID";
115: c.ContactName = "Martín Sommer";
116: c.City = "Madrid";
117: custs.Add(c);
118:
119: c = new Customer();
120: c.CustomerID = "BONAP";
121: c.ContactName = "Laurence Lebihan";
122: c.City = "Marseille";
123: custs.Add(c);
124:
125: c = new Customer();
126: c.CustomerID = "BOTTM";
127: c.ContactName = "Elizabeth Lincoln";
128: c.City = "Tsawassen";
129: custs.Add(c);
130:
131: c = new Customer();
132: c.CustomerID = "BSBEV";
133: c.ContactName = "Victoria Ashworth";
134: c.City = "London";
135: custs.Add(c);
136:
137: c = new Customer();
138: c.CustomerID = "CACTU";
139: c.ContactName = "Patricio Simpson";
140: c.City = "Buenos Aires";
141: custs.Add(c);
142:
143: c = new Customer();
144: c.CustomerID = "CENTC";
145: c.ContactName = "Francisco Chang";
146: c.City = "México D.F.";
147: custs.Add(c);
148:
149: c = new Customer();
150: c.CustomerID = "CHOPS";
151: c.ContactName = "Yang Wang";
152: c.City = "Bern";
153: custs.Add(c);
154:
155: c = new Customer();
156: c.CustomerID = "COMMI";
157: c.ContactName = "Pedro Afonso";
158: c.City = "Sao Paulo";
159: custs.Add(c);
160:
161: c = new Customer();
162: c.CustomerID = "CONSH";
163: c.ContactName = "Elizabeth Brown";
164: c.City = "London";
165: custs.Add(c);
166:
167: c = new Customer();
168: c.CustomerID = "DRACD";
169: c.ContactName = "Sven Ottlieb";
170: c.City = "Aachen";
171: custs.Add(c);
172:
173: c = new Customer();
174: c.CustomerID = "DUMON";
175: c.ContactName = "Janine Labrune";
176: c.City = "Nantes";
177: custs.Add(c);
178:
179: c = new Customer();
180: c.CustomerID = "EASTC";
181: c.ContactName = "Ann Devon";
182: c.City = "London";
183: custs.Add(c);
184:
185: c = new Customer();
186: c.CustomerID = "ERNSH";
187: c.ContactName = "Roland Mendel";
188: c.City = "Graz";
189: custs.Add(c);
190:
191: c = new Customer();
192: c.CustomerID = "FAMIA";
193: c.ContactName = "Aria Cruz";
194: c.City = "Sao Paulo";
195: custs.Add(c);
196:
197: c = new Customer();
198: c.CustomerID = "FISSA";
199: c.ContactName = "Diego Roel";
200: c.City = "Madrid";
201: custs.Add(c);
202:
203: c = new Customer();
204: c.CustomerID = "FOLIG";
205: c.ContactName = "Martine Rancé";
206: c.City = "Lille";
207: custs.Add(c);
208:
209: c = new Customer();
210: c.CustomerID = "FOLKO";
211: c.ContactName = "Maria Larsson";
212: c.City = "Bräcke";
213: custs.Add(c);
214:
215: c = new Customer();
216: c.CustomerID = "FRANK";
217: c.ContactName = "Peter Franken";
218: c.City = "München";
219: custs.Add(c);
220:
221: c = new Customer();
222: c.CustomerID = "FRANR";
223: c.ContactName = "Carine Schmitt";
224: c.City = "Nantes";
225: custs.Add(c);
226:
227: c = new Customer();
228: c.CustomerID = "FRANS";
229: c.ContactName = "Paolo Accorti";
230: c.City = "Torino";
231: custs.Add(c);
232:
233: c = new Customer();
234: c.CustomerID = "FURIB";
235: c.ContactName = "Lino Rodriguez";
236: c.City = "Lisboa";
237: custs.Add(c);
238:
239: c = new Customer();
240: c.CustomerID = "GALED";
241: c.ContactName = "Eduardo Saavedra";
242: c.City = "Barcelona";
243: custs.Add(c);
244:
245: c = new Customer();
246: c.CustomerID = "GODOS";
247: c.ContactName = "José Pedro Freyre";
248: c.City = "Sevilla";
249: custs.Add(c);
250:
251: c = new Customer();
252: c.CustomerID = "GOURL";
253: c.ContactName = "André Fonseca";
254: c.City = "Campinas";
255: custs.Add(c);
256:
257: c = new Customer();
258: c.CustomerID = "GREAL";
259: c.ContactName = "Howard Snyder";