当前位置: 首页>>代码示例>>C#>>正文


C# Cache.TryGetValue方法代码示例

本文整理汇总了C#中Cache.TryGetValue方法的典型用法代码示例。如果您正苦于以下问题:C# Cache.TryGetValue方法的具体用法?C# Cache.TryGetValue怎么用?C# Cache.TryGetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Cache的用法示例。


在下文中一共展示了Cache.TryGetValue方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ConditionalCaching

        public void ConditionalCaching()
        {
            var cache = new Cache<string, int>(2);

            int value;
            if (!cache.TryGetValue("A", out value))
            {
                value = 1;
                cache.Add("A", value);
            }

            Assert.AreEqual<int>(1, cache.Count, "The count is incorrect.");
            Assert.IsTrue(cache.TryGetValue("A", out value), "The cache did not contain 'A'.");
            Assert.AreEqual<int>(1, value, "The cached value is incorrect.");
        }
开发者ID:heaths,项目名称:psmsi,代码行数:15,代码来源:CacheTests.cs

示例2: BasicAdd

        public void BasicAdd()
        {
            var cache = new Cache<ByteArray>(500 * 1024, ba => ba.Length );
            var items = new List<KeyValuePair<string, ByteArray>>();

            for (int i = 0; i < 100; i++) {
                var key = ByteArray.Random(40).ToString();
                var val = ByteArray.Random(256);
                cache.Set(key, val);
                items.Add(new KeyValuePair<string, ByteArray>(key, val));
            }

            ByteArray oval;
            for (int i = 0; i < 100; i++) {
                var data = items[i];
                Assert.IsTrue(cache.TryGetValue(data.Key, out oval));
                Assert.AreEqual(data.Value, oval);
            }
            Assert.IsFalse(cache.TryGetValue(ByteArray.Random(40).ToString(), out oval));
        }
开发者ID:gnoso,项目名称:razordb,代码行数:20,代码来源:CacheTests.cs

示例3: CheckLRU

        public void CheckLRU()
        {
            int limit = 100 * 256;
            var cache = new Cache<ByteArray>(limit, ba => ba.Length);
            var items = new List<string>();

            for (int i = 0; i < 100; i++) {
                var key = ByteArray.Random(40).ToString();
                var val = ByteArray.Random(256);
                cache.Set(key, val);

                items.Add(key);
            }

            ByteArray output;
            // Touch the first 50 items again
            for (int i = 0; i < 50; i++) {
                Assert.IsTrue(cache.TryGetValue(items[i], out output));
            }

            // Add 10 more items
            for (int i = 0; i < 10; i++) {
                var key = ByteArray.Random(40).ToString();
                var val = ByteArray.Random(256);
                cache.Set(key, val);

                items.Add(key);
            }

            // First 50 items should still be there
            for (int i = 0; i < 50; i++) {
                Assert.IsTrue(cache.TryGetValue(items[i], out output));
            }

            // Next 10 items should be evicted
            for (int i = 50; i < 60; i++) {
                Assert.IsFalse(cache.TryGetValue(items[i], out output));
            }

            // Next 50 items should still be there
            for (int i = 60; i < 110; i++) {
                Assert.IsTrue(cache.TryGetValue(items[i], out output));
            }

            Assert.GreaterOrEqual(limit, cache.CurrentSize);
        }
开发者ID:gnoso,项目名称:razordb,代码行数:46,代码来源:CacheTests.cs

示例4: CheckOverSizeLimit

        public void CheckOverSizeLimit()
        {
            int limit = 100 * 256;
            var cache = new Cache<ByteArray>(limit, ba => ba.Length);
            var items = new List<string>();

            int size = 0;
            for (int i = 0; i < 200; i++) {
                var key = ByteArray.Random(40).ToString();
                var val = ByteArray.Random(256);
                cache.Set(key, val);
                size += val.Length;

                items.Add(key);
            }

            Assert.GreaterOrEqual(limit, cache.CurrentSize);
            ByteArray output;
            // First 100 items should have been evicted
            for (int i = 0; i < 100; i++) {
                Assert.IsFalse(cache.TryGetValue(items[i], out output));
            }

            // Next 100 items should still be there
            for (int i = 100; i < 200; i++) {
                Assert.IsTrue(cache.TryGetValue(items[i], out output));
            }
        }
开发者ID:gnoso,项目名称:razordb,代码行数:28,代码来源:CacheTests.cs

示例5: UpdateCache

        public void UpdateCache()
        {
            var cache = new Cache<string, int>(2);
            cache.Add("A", 1);

            int value;
            Assert.IsTrue(cache.TryGetValue("A", out value), "The cache did not contain 'A'.");
            Assert.AreEqual<int>(1, value, "The cached value is incorrect.");

            cache.Add("A", 2);
            Assert.IsTrue(cache.TryGetValue("A", out value), "The cache did not contain 'A'.");
            Assert.AreEqual<int>(2, value, "The cached value is incorrect.");
        }
开发者ID:heaths,项目名称:psmsi,代码行数:13,代码来源:CacheTests.cs


注:本文中的Cache.TryGetValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。