public CachedBigramList CacheBigramByPOSList(List <BigramEntry> bigramList, int totalFrequency, PartOfSpeech first, PartOfSpeech second)
            {
                CachedBigramList cachedList = new CachedBigramList()
                {
                    entries = bigramList, totalFrequency = totalFrequency
                };
                CachedBigramByPOSListKey cachedListKey = new CachedBigramByPOSListKey()
                {
                    firstPos = first, secondPos = second
                };

                cachedBigramByPOSLists.Add(cachedListKey, cachedList);
                return(cachedList);
            }
                public override bool Equals(object obj)
                {
                    if (this == obj)
                    {
                        return(true);
                    }
                    if (obj == null || this.GetType() != obj.GetType())
                    {
                        return(false);
                    }
                    CachedBigramByPOSListKey that = (CachedBigramByPOSListKey)obj;

                    if (this.firstPos != that.firstPos || this.secondPos != that.secondPos)
                    {
                        return(false);
                    }
                    return(true);
                }