SIL.FieldWorks.IText.ConcordanceControl.GetOccurrencesOfAnalyses C# (CSharp) Method

GetOccurrencesOfAnalyses() private method

private GetOccurrencesOfAnalyses ( IEnumerable analyses ) : List
analyses IEnumerable
return List
		private List<IParaFragment> GetOccurrencesOfAnalyses(IEnumerable<IAnalysis> analyses)
		{
			var result = new List<IParaFragment>();
			var interestingParas = ParagraphsToSearch;
			foreach (var analysis in analyses)
			{
				// Don't create this one layer further out! We want to avoid processing the same segment
				// repeatedly for the SAME analysis, but not if other analyses occur in it.
				var segs = new HashSet<ISegment>();
				foreach (var seg in analysis.Wordform.OccurrencesInTexts)
				{
					if (!interestingParas.Contains(seg.Owner as IStTxtPara))
						continue;
					if (segs.Contains(seg))
						continue; // wordform occurs in it more than once, but we only want to add the occurences once.
					segs.Add(seg);
					foreach (var occurrence in seg.GetOccurrencesOfAnalysis(analysis, int.MaxValue, true))
						result.Add(occurrence);
				}
			}
			return result;
		}