Beispiel #1
0
        /// <summary>
        /// 指定されたユニット定義パラメータで同名の既存のパラメータを置き換え、影響を被った既存の要素数を返します。
        /// </summary>
        /// <returns>置き換えされた既存の要素の数</returns>
        /// <param name="self"></param>
        /// <param name="newParams">新しいパラメータ</param>
        /// <exception cref="NotSupportedException">コレクションがイミュータブルな場合</exception>
        public static int ReplaceAll(this NonNullCollection <IParameter> self, IEnumerable <IParameter> newParams)
        {
            var paramNames = newParams.Select(p => p.Name).Distinct().ToArray();
            Func <IParameter, bool> predicate = p => paramNames.Contains(p.Name);
            var removed = self.RemoveAll(predicate);

            foreach (var newParam in newParams)
            {
                self.Add(newParam);
            }
            return(removed);
        }
Beispiel #2
0
 /// <summary>
 /// 条件にマッチする要素をすべて削除しその要素数を返します。
 /// </summary>
 /// <returns>削除した要素の数</returns>
 /// <param name="self"></param>
 /// <param name="type">ユニット種別</param>
 /// <exception cref="NotSupportedException">コレクションがイミュータブルな場合</exception>
 public static int RemoveAll(this NonNullCollection <IUnit> self, string type)
 {
     return(self.RemoveAll(UnitType.FromName(type)));
 }
Beispiel #3
0
 /// <summary>
 /// 名前が一致する要素をすべて削除しその要素数を返します。
 /// </summary>
 /// <returns>削除した要素の数</returns>
 /// <param name="self"></param>
 /// <param name="paramName">削除をする要素の名前</param>
 /// <exception cref="NotSupportedException">コレクションがイミュータブルな場合</exception>
 public static int RemoveAll(this NonNullCollection <IParameter> self, string paramName)
 {
     return(self.RemoveAll(x => x.Name == paramName));
 }
Beispiel #4
0
 /// <summary>
 /// 条件にマッチする要素をすべて削除しその要素数を返します。
 /// </summary>
 /// <returns>削除した要素の数</returns>
 /// <param name="self"></param>
 /// <param name="type">ユニット種別</param>
 /// <exception cref="NotSupportedException">コレクションがイミュータブルな場合</exception>
 public static int RemoveAll(this NonNullCollection <IUnit> self, UnitType type)
 {
     return(self.RemoveAll(x => x.Type == type));
 }