コード例 #1
0
 public void ToggleFactors(IEnumerable <IFactor> factors, bool on)
 {
     if (on)
     {
         foreach (var factor in factors)
         {
             if (!Factors.Contains(factor))
             {
                 Factors.Add(factor);
             }
         }
     }
     else
     {
         foreach (var factor in factors)
         {
             if (Factors.Contains(factor))
             {
                 Factors.Remove(factor);
             }
         }
     }
 }
        /// <summary>
        /// Remove old species facts that are no longer
        /// included in the species fact scope.
        /// </summary>
        private void RemoveSpeciesFactsNotInScope()
        {
            Int32        index;
            ISpeciesFact speciesFact;

            if (SpeciesFacts.IsNotEmpty())
            {
                for (index = SpeciesFacts.Count - 1; index >= 0; index--)
                {
                    speciesFact = SpeciesFacts[index];
                    if ((!Factors.Contains(speciesFact.Factor)) ||
                        (!IndividualCategories.Contains(speciesFact.IndividualCategory)) ||
                        (!Taxa.Contains(speciesFact.Taxon)) ||
                        (speciesFact.HasHost && !Hosts.Contains(speciesFact.Host)) ||
                        (speciesFact.HasPeriod && !Periods.Contains(speciesFact.Period)))
                    {
                        // This species fact is no longer
                        // included in the species fact scope.
                        SpeciesFacts.RemoveAt(index);
                    }
                }
            }
        }