示例#1
0
        bool ICommandExecutorImpl.TryAddToLastParameter(ParameterInfo lastParameter, string value, SortedList <int, object> parameters)
        {
            object argValue;

            if (lastParameter?.ParameterType.IsArray != true)
            {
                return(false);
            }

            Array existingArray;

            if (parameters.TryGetValue(lastParameter.Position, out var existingArgValue))
            {
                existingArray = (Array)existingArgValue;
            }
            else
            {
                existingArray = Array.CreateInstance(lastParameter.ParameterType.GetElementType(), 0);
            }

            argValue = _valueConverter.GetValue(value, lastParameter.ParameterType.GetElementType());

            var newArray = existingArray.ExtendAndAdd(argValue);

            parameters.AddOrUpdate(lastParameter.Position, newArray);

            return(true);
        }
示例#2
0
        public void AddOrUpdateTestSL()
        {
            IDictionary <string, string> dic = new SortedList <string, string>
            {
                { "key1", "item1" }, { "key2", "item2" }, { "key3", "item3" }, { "key4", "item4" }
            };

            dic.AddOrUpdate("key5", "item5");
            Assert.Equal("item5", dic["key5"]);
            Assert.Equal(5, dic.Count);
        }