/// <summary>
        /// 文字列型をSquareCollection型に変換します。
        /// </summary>
        public override object ConvertFrom(ITypeDescriptorContext context,
                                           CultureInfo culture, object value)
        {
            var str = value as string;

            if (str != null)
            {
                return(SquareCollection.Parse(str));
            }

            return(base.ConvertFrom(context, culture, value));
        }
Beispiel #2
0
        /// <summary>
        /// SquareCollectionを文字列から作成します。
        /// </summary>
        /// <remarks>
        /// 受け入れるフォーマットはToStringが生成したものと同じです。
        /// </remarks>
        public static SquareCollection Parse(string source)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            var list = source.Split(
                new char[] { ' ' },
                StringSplitOptions.RemoveEmptyEntries);

            if (list == null || !list.Any())
            {
                return(new SquareCollection());
            }

            var result = new SquareCollection();

            list.Select(_ => Square.Parse(_))
            .ForEach(_ => result.Add(_));
            return(result);
        }