/// <summary> /// Возвращает строку со всеми авторами книги /// </summary> /// <returns>Строка, содержащая всех авторов</returns> string getAuthors() { var result = ""; Authors.ForEach(i => result += i + ";"); result = result.Remove(result.Length - 1); return(result); }
//Вычисление индекса Хирша 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; }); }