program.cs
来自「C#高级编程第6版随书源代码 值得下载」· CS 代码 · 共 234 行
CS
234 行
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.Specialized;
using System.Collections;
using System.Diagnostics;
namespace Wrox.ProCSharp.Collections
{
//struct Test
//{
// public int a;
// public int b;
//}
public class RacerEqualityComparer : EqualityComparer<Racer>
{
public override bool Equals(Racer x, Racer y)
{
return x.LastName.Equals(y.LastName);
}
public override int GetHashCode(Racer obj)
{
return obj.GetHashCode();
}
}
public class FindCountry
{
public FindCountry(string country)
{
this.country = country;
}
private string country;
public bool FindCountryPredicate(Racer racer)
{
if (racer == null) throw new ArgumentNullException("racer");
return racer.Country == country;
}
}
class Program
{
static void ListDemo2()
{
Racer graham = new Racer("Graham", "Hill", "UK", 14);
Racer emerson = new Racer("Emerson", "Fittipaldi", "Brazil", 14);
Racer mario = new Racer("Mario", "Andretti", "USA", 12);
List<Racer> racers = new List<Racer>(20) { graham, emerson, mario };
Console.WriteLine(racers.Capacity);
}
static void ListDemo()
{
List<Racer> racers = new List<Racer>(20);
Racer graham = new Racer("Graham", "Hill", "UK", 14);
racers.Add(graham);
Racer emerson = new Racer("Emerson", "Fittipaldi", "Brazil", 14);
racers.Add(emerson);
Racer mario = new Racer("Mario", "Andretti", "USA", 12);
racers.Add(mario);
racers.Add(new Racer("Michael", "Schumacher", "Germany", 91));
racers.Add(new Racer("Mika", "Hakkinen", "Finland", 20));
racers.AddRange(new Racer[] {new Racer("Niki", "Lauda", "Austria", 25), new Racer("Alain", "Prost", "France", 51)});
List<Racer> racers2 = new List<Racer>(20) { graham, emerson, mario };
Console.WriteLine(racers.Capacity);
racers.Insert(3, new Racer("Phil", "Hill", "USA", 3));
for (int i = 0; i < racers.Count; i++)
{
Console.WriteLine(racers[i]);
}
foreach (Racer r in racers)
{
Console.WriteLine(r);
}
//racers.ForEach(
// delegate(Racer r)
// {
// Console.WriteLine(r);
// });
racers.ForEach(r => Console.WriteLine("{0:A}", r));
int index1 = racers.IndexOf(mario);
int index2 = racers.FindIndex(new FindCountry("Finland").FindCountryPredicate);
//int index3 = racers.FindIndex(
// delegate(Racer r)
// {
// return r.LastName == "Rindt";
// });
int index3 = racers.FindIndex(r => r.LastName == "Rindt");
//Racer racer = racers.Find(
// delegate(Racer r)
// {
// return r.FirstName == "Niki";
// });
Racer racer = racers.Find(r => r.FirstName == "Niki");
//List<Racer> bigWinners = racers.FindAll(
// delegate(Racer r)
// {
// return r.Wins > 20;
// });
List<Racer> bigWinners = racers.FindAll(r => r.Wins > 20);
foreach (Racer r in bigWinners)
{
Console.WriteLine("{0:A}", r);
}
Racer j = new Racer("Jochen", "Rindt", "Austria", 6);
if (racers.Remove(j))
{
Console.WriteLine("removed");
}
//List<Racer> w = racers.FindAll(
// delegate(Racer r)
// {
// return r.Wins > 15;
// });
List<Racer> w = racers.FindAll(r => r.Wins > 15);
Console.WriteLine("Won more than 15 races");
w.ForEach(Console.WriteLine);
racers.Sort();
Console.WriteLine("sorted...");
racers.ForEach(Console.WriteLine);
racers.Sort(new RacerComparer(RacerComparer.CompareType.Country));
racers.ForEach(Console.WriteLine);
//List<Person> persons = racers.ConvertAll<Person>(
// delegate(Racer r)
// {
// return new Person(r.FirstName + " " + r.LastName);
// });
List<Person> persons = racers.ConvertAll<Person>(
r => new Person(r.FirstName + " " + r.LastName));
racers.Sort((r1, r2) => r2.Wins.CompareTo(r1.Wins));
//racers.ForEach(Console.WriteLine);
//racers.Sort();
//racers.ForEach(Console.WriteLine);
//racers.Sort(delegate(Racer r1, Racer r2)
//{
// return r2.Wins.CompareTo(r1.Wins);
//});
//racers.ForEach(Console.WriteLine);
}
static void StackDemo()
{
Stack<char> alphabet = new Stack<char>();
alphabet.Push('A');
alphabet.Push('B');
alphabet.Push('C');
foreach (char item in alphabet)
{
Console.Write(item);
}
Console.WriteLine();
while (alphabet.Count > 0)
{
Console.Write(alphabet.Pop());
}
Console.WriteLine();
}
static void Main()
{
// ListDemo();
// StackDemo();
SortedListDemo();
}
private static void SortedListDemo()
{
SortedList<string, string> books = new SortedList<string, string>();
books.Add(".NET 2.0 Wrox Box", "978-0-470-04840-5");
books.Add("Professional C# 2005 with .NET 3.0", "978-0-470-12472-7");
books["Beginning Visual C# 2005"] = "978-0-7645-4382-1";
books["Professional C# 2008"] = "978-0-470-19137-6";
foreach (KeyValuePair<string, string> book in books)
{
Console.WriteLine("{0}, {1}", book.Key, book.Value);
}
foreach (string isbn in books.Values)
{
Console.WriteLine(isbn);
}
foreach (string title in books.Keys)
{
Console.WriteLine(title);
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?