Baku.LibqiDotNet.QiValue.Create C# (CSharp) Method

Create() public static method

シグネチャを指定して値を初期化します。
public static Create ( string sig ) : QiValue
sig string 値のシグネチャを表す文字列
return QiValue
        public static QiValue Create(string sig) => QiApiValue.Create(sig);
        /// <summary>

Usage Example

Exemplo n.º 1
0
        /// <summary>キーと値のペアを用いてマップ型変数を生成します。</summary>
        /// <param name="values">キーと値のペア</param>
        /// <returns>入力データに対応するマップ型変数</returns>
        public static QiMap <K, V> Create(IEnumerable <KeyValuePair <K, V> > values)
        {
            if (!values.Any())
            {
                throw new InvalidOperationException("values length must be greater than 0");
            }

            //中身のシグネチャ揃ってるかどうか検証
            var pf   = values.First();
            var ksig = pf.Key.Signature;
            var vsig = pf.Value.Signature;

            if (values.Any(pair => (pair.Key.Signature != ksig || pair.Value.Signature != vsig)))
            {
                throw new InvalidOperationException("key or values type is inconsistent");
            }

            string sig = QiSignatures.TypeMapBegin + ksig + vsig + QiSignatures.TypeMapEnd;

            var map = QiValue.Create(sig);

            foreach (var pair in values)
            {
                map[pair.Key.QiValue] = pair.Value.QiValue;
            }
            return(new QiMap <K, V>(map, sig));
        }
All Usage Examples Of Baku.LibqiDotNet.QiValue::Create