Exemple #1
0
        public void Querying()
        {
            var dic = new OrderedDictionary <int, string>()
            {
                { 3, "three" },
                { 2, "two" },
                { 1, "one" },
                { 4, "four" },
            };

            IDictionary <int, string> dicIntf       = dic;
            IOrderedDictionary        dicNonGeneric = dic;
            IReadOnlyOrderedDictionary <int, string> readOnlyDic = dic;

            Assert.Equal("one", dic[2]);
            Assert.Throws <ArgumentOutOfRangeException>(() => dic[-1]);
            Assert.Throws <ArgumentOutOfRangeException>(() => dic[dic.Count]);

            Assert.Equal("two", dicIntf[2]);
            Assert.Throws <KeyNotFoundException>(() => dicIntf[0]);

            Assert.True(dic.TryGetValue(2, out var value));
            Assert.Equal("two", value);
            Assert.False(dic.TryGetValue(0, out value));
            Assert.Equal(null, value);

            Assert.True(dic.ContainsKey(2));
            Assert.False(dic.ContainsKey(0));
            Assert.True(dic.Keys.Contains(2));
            Assert.False(dic.Keys.Contains(0));
            Assert.True(readOnlyDic.Keys.Contains(2));
            Assert.False(readOnlyDic.Keys.Contains(0));

            Assert.True(dicNonGeneric.Contains(2));
            Assert.False(dicNonGeneric.Contains(0));

            Assert.True(dic.ContainsValue("two"));
            Assert.False(dic.ContainsValue("Two"));
            Assert.True(dic.Values.Contains("two"));
            Assert.False(dic.Values.Contains("Two"));
            Assert.True(readOnlyDic.Values.Contains("two"));
            Assert.False(readOnlyDic.Values.Contains("Two"));

            Assert.Equal(1, dic.GetKeyAt(2));
            Assert.Throws <ArgumentOutOfRangeException>(() => dic.GetKeyAt(-1));
            Assert.Throws <ArgumentOutOfRangeException>(() => dic.GetKeyAt(dic.Count));

            Assert.Equal(2, dic.IndexOfKey(1));
            Assert.Equal(-1, dic.IndexOfKey(0));

            var array = new KeyValuePair <int, string> [dic.Count + 2];

            dicIntf.CopyTo(array, 1);
            Assert.Equal(new[] {
Exemple #2
0
        internal StatementImpl(sqlite3_stmt stmt, SQLiteDatabaseConnection db)
        {
            this.stmt = stmt;
            this.db   = db;

            this.bindParameters = new BindParameterOrderedDictionaryImpl(this);
            this.columns        = new ColumnsListImpl(this);
            this.current        = new ResultSetImpl(this);

            this.dbDisposing   = (o, e) => this.Dispose();
            this.db.Disposing += dbDisposing;
        }