Example #1
0
        /// <summary>
        /// Возвращает строку со всеми авторами книги
        /// </summary>
        /// <returns>Строка, содержащая всех авторов</returns>
        string getAuthors()
        {
            var result = "";

            Authors.ForEach(i => result += i + ";");
            result = result.Remove(result.Length - 1);
            return(result);
        }
Example #2
0
        //Вычисление индекса Хирша
        private void CountAuthorsCitateIndex()
        {
            var citatesCount = new Dictionary <Publication, int>();

            Publications.ForEach(p => p.Citates.ForEach(cp => citatesCount[cp] = citatesCount.GetValueOrDefault(cp, 0) + 1));
            Authors.ForEach(a =>
            {
                var aPubs = AuthorPublicationsLinks.Where(apl => apl.Item1 == a).Select(apl => Tuple.Create(apl.Item2, citatesCount.GetValueOrDefault(apl.Item2, 0))).ToList();
                aPubs.Sort((pc1, pc2) => pc2.Item2.CompareTo(pc1.Item2));
                int h = 0;
                while (h < aPubs.Count && h <= aPubs[h].Item2)
                {
                    ++h;
                }
                a.HIndex = h;
            });
        }