Beispiel #1
0
            private object SetValue(string key, object value, bool isAdd)
            {
                if (key == null)
                {
                    throw new ArgumentNullException(nameof(key));
                }
                int index = table.IndexOfName(key);

                if (index < 0)
                {
                    index = table.AddField(key);
                }
                else if (isAdd && index < values.Length && !(values[index] is DeadValue))
                {
                    // then semantically, this value already exists
                    throw new ArgumentException("An item with the same key has already been added", nameof(key));
                }
                int oldLength = values.Length;

                if (oldLength <= index)
                {
                    // we'll assume they're doing lots of things, and
                    // grow it to the full width of the table
                    Array.Resize(ref values, table.FieldCount);
                    for (int i = oldLength; i < values.Length; i++)
                    {
                        values[i] = DeadValue.Default;
                    }
                }
                return(values[index] = value);
            }
 private object SetValue(string key, object value, bool isAdd)
 {
     if (key == null) throw new ArgumentNullException(nameof(key));
     int index = table.IndexOfName(key);
     if (index < 0)
     {
         index = table.AddField(key);
     }
     else if (isAdd && index < values.Length && !(values index] is DeadValue))
     {
         // then semantically, this value already exists
         throw new ArgumentException("An item with the same key has already been added", nameof(key));
     }
     return SetValue(index, value);
 }