/// <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); }
/// <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))); }
/// <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)); }
/// <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)); }