コード例 #1
0
 public void AddDocument(Document1 doc)
 {
     lock (this)
     {
         documentQueue.Enqueue(doc);
     }
 }
コード例 #2
0
        public Document1 GetDocument()
        {
            Document1 doc = null;

            lock (this)
            {
                doc = documentQueue.Dequeue();
            }
            return(doc);
        }
コード例 #3
0
ファイル: ProcessDocument.cs プロジェクト: Alex-Hujq/---
 protected void Run()
 {
     while (true)
     {
         if (documentManager.IsDocumentAvailable)
         {
             Document1 doc = documentManager.GetDocument();
             Console.WriteLine("Processing document {0}", doc.Title);
         }
         Thread.Sleep(new Random().Next(20));
     }
 }
コード例 #4
0
        static void Main(string[] args)
        {
            //Console.WriteLine("Hello World!");
            var intList = new List <int>();

            intList.Add(1);
            intList.Add(2);
            var stringList = new List <string>();

            stringList.Add("one");
            stringList.Add("two");

            var graham  = new Racer(7, "Graham", "Hill", "UK", 14);
            var emerson = new Racer(13, "Emerson", "Fittipaldi", "Brazil", 14);
            var mario   = new Racer(16, "Mario", "Andretti", "USA", 12);

            var racers = new List <Racer>(20)
            {
                graham, emerson, mario
            };

            racers.Add(new Racer(24, "Michael", "Schumacher", "Germany", 91));
            racers.Add(new Racer(27, "Mika", "Hakkinen", "Finland", 20));

            racers.AddRange(new Racer[] {
                new Racer(14, "Niki", "Lauda", "Austria", 25),
                new Racer(21, "Alain", "Prost", "France", 51)
            });

            var racers2 = new List <Racer>(new Racer[] {
                new Racer(12, "Jochen", "Rindt", "Austria", 6),
                new Racer(22, "Ayrton", "Senna", "Brazil", 41)
            });

            //
            racers.Insert(3, new Racer(6, "Phil", "Hill", "USA", 3));
            //
            Racer r1 = racers[3];

            for (int i = 0; i < racers.Count; i++)
            {
                Console.WriteLine(racers[i]);
            }
            Console.WriteLine("   ");
            foreach (Racer e in racers)
            {
                Console.WriteLine(e);
            }
            //
            racers.RemoveAt(3);
            if (!racers.Remove(graham))
            {
                Console.WriteLine("object not found in collection");
            }
            int index = 3;
            int count = 5;
            // racers.RemoveRange(index, count);
            //
            //int index1 = racers.IndexOf(mario);
            //public int FindIndex(Predicate<T> match);

            // racers.Sort(new RacerComparer(RacerComparer));

            /*
             * List<Person> persons =
             *  racers.ConvertAll<Person>(
             *      r => Person(r.FirstName + "" + r.LastName));
             */

            var dm = new DocumentManager();

            ProcessDocuments.Start(dm);
            for (int i = 0; i < 10; i++)
            {
                var doc = new Document1("doc " + i.ToString(), "content");
                dm.AddDocument(doc);
                Console.WriteLine("added document  {0}", doc.Title);
                Thread.Sleep(new Random().Next(20));
            }
            //队列

            var alphabet = new Stack <char>();

            alphabet.Push('A');
            alphabet.Push('B');
            alphabet.Push('C');
            foreach (char item in alphabet)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();
            Console.WriteLine("second iteration:  ");
            while (alphabet.Count > 0)
            {
                Console.Write(alphabet.Pop());
            }
            Console.WriteLine();
            //栈

            var pdm = new PriorityDocumentManager();

            pdm.AddDocument(new Document("one", "Sample", 8));
            pdm.AddDocument(new Document("two", "Sample", 3));
            pdm.AddDocument(new Document("three", "Sample", 4));
            pdm.AddDocument(new Document("four", "Sample", 8));
            pdm.AddDocument(new Document("five", "Sample", 1));
            pdm.AddDocument(new Document("six", "Sample", 9));
            pdm.AddDocument(new Document("seven", "Sample", 1));
            pdm.AddDocument(new Document("eight", "Sample", 1));

            pdm.DisplayAllNodes();

            //链表
            var books = new SortedList <string, string>();

            books.Add("Professional WPF Programming", "978–0–470–04180–2");
            books.Add("Professional ASP.NET MVC 3", "978–1–1180–7658–3");

            books["Beginning Visual C# 2010"]     = "978–0–470-50226-6";
            books["Professional C# 4 and .NET 4"] = "978–0–470–50225–9";

            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);
            }
            string isbn1;
            string title1 = "Professional c# 7.0";

            if (!books.TryGetValue(title1, out isbn1))
            {
                Console.WriteLine("{0} not found", title1);
            }
            //
            var employees = new Dictionary <EmployeeId, Employee>(31);

            var idTony = new EmployeeId("C3755");
            var tony   = new Employee(idTony, "Tony Stewart", 379025.00m);

            employees.Add(idTony, tony);
            Console.WriteLine(tony);

            var idCarl = new EmployeeId("F3547");
            var carl   = new Employee(idCarl, "Carl Edwards", 403466.00m);

            employees.Add(idCarl, carl);
            Console.WriteLine(carl);

            var idKevin = new EmployeeId("C3386");
            var kevin   = new Employee(idKevin, "Kevin Harwick", 415261.00m);

            employees.Add(idKevin, kevin);
            Console.WriteLine(kevin);

            var idMatt = new EmployeeId("F3323");
            var matt   = new Employee(idMatt, "Matt Kenseth", 1589390.00m);

            employees[idMatt] = matt;
            Console.WriteLine(matt);

            var idBrad = new EmployeeId("D3234");
            var brad   = new Employee(idBrad, "Brad Keselowski", 322295.00m);

            employees[idBrad] = brad;
            Console.WriteLine(brad);



            while (true)
            {
                Console.Write("Enter employee id (X to exit)> ");
                var userInput = Console.ReadLine();
                userInput = userInput.ToUpper();
                if (userInput == "X")
                {
                    break;
                }

                EmployeeId id;
                try
                {
                    id = new EmployeeId(userInput);


                    Employee employee;
                    if (!employees.TryGetValue(id, out employee))
                    {
                        Console.WriteLine("Employee with id {0} does not exist", id);
                    }
                    else
                    {
                        Console.WriteLine(employee);
                    }
                }
                catch (EmployeeIdException ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            //字典
            var racers1 = new List <Racer>();

            racers.Add(new Racer(26, "Jacques", "Villeneuve", "Canada", 11));
            racers.Add(new Racer(18, "Alan", "Jones", "Australia", 12));
            racers.Add(new Racer(11, "Jackie", "Stewart", "United Kingdom", 27));
            racers.Add(new Racer(15, "James", "Hunt", "United Kingdom", 10));
            racers.Add(new Racer(5, "Jack", "Brabham", "Australia", 14));

            var lookupRacers = racers.ToLookup(r => r.Country);

            foreach (Racer r in lookupRacers["Australia"])
            {
                Console.WriteLine(r);
            }

            //lookup
            var companyTeams = new HashSet <string>()
            {
                "Ferrari", "McLaren", "Mercedes"
            };
            var traditionalTeams = new HashSet <string>()
            {
                "Ferrari", "McLaren"
            };
            var privateTeams = new HashSet <string>()
            {
                "Red Bull", "Lotus", "Toro Rosso", "Force India", "Sauber"
            };

            if (privateTeams.Add("Williams"))
            {
                Console.WriteLine("Williams added");
            }
            if (!companyTeams.Add("McLaren"))
            {
                Console.WriteLine("McLaren was already in this set");
            }

            if (traditionalTeams.IsSubsetOf(companyTeams))
            {
                Console.WriteLine("traditionalTeams is subset of companyTeams");
            }

            if (companyTeams.IsSupersetOf(traditionalTeams))
            {
                Console.WriteLine("companyTeams is a superset of traditionalTeams");
            }


            traditionalTeams.Add("Williams");
            if (privateTeams.Overlaps(traditionalTeams))
            {
                Console.WriteLine("At least one team is the same with the traditional " +
                                  "and private teams");
            }

            var allTeams = new SortedSet <string>(companyTeams);

            allTeams.UnionWith(privateTeams);
            allTeams.UnionWith(traditionalTeams);

            Console.WriteLine();
            Console.WriteLine("all teams");
            foreach (var team in allTeams)
            {
                Console.WriteLine(team);
            }

            allTeams.ExceptWith(privateTeams);
            Console.WriteLine();
            Console.WriteLine("no private team left");
            foreach (var team in allTeams)
            {
                Console.WriteLine(team);
            }
            //集
            var data = new ObservableCollection <string>();

            data.CollectionChanged += Data_CollectionChanged;
            data.Add("One");
            data.Add("Two");
            data.Insert(1, "Three");
            data.Remove("One");
        }