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[] {
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; }