コード例 #1
0
        public void Init(ICollection <Movie> movies, FirstField ff)
        {
            Field = ff;
            if (Field == FirstField.Year)
            {
                SearchTreeByYearByGenre = new c5T.TreeDictionary <long, Dictionary <string, List <Movie> > >();

                List <c5T.KeyValuePair <long, Dictionary <string, List <Movie> > > > KVPList = new List <c5T.KeyValuePair <long, Dictionary <string, List <Movie> > > >();

                foreach (var YearGrp in movies.GroupBy(m => m.Year))
                {
                    long year = YearGrp.Key;
                    Dictionary <string, List <Movie> > genreDict = new Dictionary <string, List <Movie> >();

                    foreach (var genreGrp in YearGrp.GroupBy(m => m.Genre))
                    {
                        genreDict.Add(genreGrp.Key, genreGrp.ToList());
                    }

                    KVPList.Add(new c5T.KeyValuePair <long, Dictionary <string, List <Movie> > >(year, genreDict));
                }

                SearchTreeByYearByGenre.AddAll(KVPList);
            }
            else
            {
                SearchTreeByGenreByYear = new Dictionary <string, c5T.TreeDictionary <long, List <Movie> > >();
                throw new Exception("Not Implemented");
            }
        }
コード例 #2
0
        public void Init(ICollection <Movie> movies, FirstField ff)
        {
            Field = ff;

            InitDataStructure();
            if (Field == FirstField.Year)
            {
                foreach (var YearGrp in movies.GroupBy(m => m.Year))
                {
                    Dictionary <string, IList <Movie> > genreDict = new Dictionary <string, IList <Movie> >();

                    foreach (var genreGrp in YearGrp.GroupBy(m => m.Genre))
                    {
                        genreDict.Add(genreGrp.Key, genreGrp.ToList());
                    }

                    long year = YearGrp.Key;
                    BinaryTreeByYearByGenre.Add(year, genreDict);
                }
            }
            else
            {
                foreach (var genreGrp in movies.GroupBy(m => m.Genre))
                {
                    BinaryTree <long, IList <Movie> > yearTree;
                    if (BinaryTreeType.BinaryTree == TreeType)
                    {
                        yearTree = new BinaryTree <long, IList <Movie> >();
                    }
                    else
                    {
                        yearTree = new RedBlackTree <long, IList <Movie> >();
                    }

                    foreach (var YearGrp in genreGrp.GroupBy(m => m.Year))
                    {
                        long year = YearGrp.Key;
                        yearTree.Add(year, YearGrp.ToList());
                    }

                    BinaryTreeByGenreByYear.Add(genreGrp.Key, yearTree);
                }
            }

            if (BinaryTreeType.BinaryTree == TreeType)
            {
                MoneyGrossBinaryTree = new BinaryTree <long, IList <Movie> >();
            }
            else
            {
                MoneyGrossBinaryTree = new RedBlackTree <long, IList <Movie> >();
            }

            foreach (var grossGrp in movies.GroupBy(m => m.Gross))
            {
                MoneyGrossBinaryTree.Add(grossGrp.Key, grossGrp.ToList());
            }
        }