﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.9.1/dotnetdoc/api/Apache.Ignite.Core.Cache.ICache-2.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">
<!-- Yandex.Metrika counter -->
    <script type="text/javascript" >
      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
    
      ym(72949126, "init", {
           clickmap:true,
           trackLinks:true,
           accurateTrackBounce:true,
           webvisor:true
      });
    </script>
    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
    <!-- /Yandex.Metrika counter -->
<script type='text/javascript'>
    window.__lo_site_id = 284467;
    
      (function() {
        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
        })();
      </script>


    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Interface ICache&lt;TK, TV&gt;
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Interface ICache&lt;TK, TV&gt;
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.24.0.0">
    
    <link rel="shortcut icon" href="../images/favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    <meta property="docfx:rel" content="../">
    
  
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>
  <body data-spy="scroll" data-target="#affix">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Cache.ICache`2">
  
  
  <h1 id="Apache_Ignite_Core_Cache_ICache_2" data-uid="Apache.Ignite.Core.Cache.ICache`2" class="text-break">Interface ICache&lt;TK, TV&gt;
  </h1>
  <div class="markdown level0 summary"><p>Main entry point for Ignite cache APIs. You can get a named cache by calling
<a class="xref" href="Apache.Ignite.Core.IIgnite.html#Apache_Ignite_Core_IIgnite_GetCache__2_System_String_">GetCache&lt;TK, TV&gt;(String)</a> method.
<p>
Cache API supports distributed transactions. All <code>Get(...)</code>, <code>Put(...)</code>, <code>Replace(...)</code>,
and <code>Remove(...)</code> operations are transactional and will participate in an ongoing transaction,
if any. Other methods like <code>Peek(...)</code> or various <code>Contains(...)</code> methods may
be transaction-aware, i.e. check in-transaction entries first, but will not affect the current
state of transaction. See <a class="xref" href="Apache.Ignite.Core.Transactions.ITransaction.html">ITransaction</a> documentation for more information
about transactions.
<p>
Neither <code>null</code> keys or values are allowed to be stored in cache. If a <code>null</code> value
happens to be in cache (e.g. after invalidation or remove), then cache will treat this case
as there is no value at all.
<p>
Note that cache is generic and you can only work with provided key and value types. If cache also
contains keys or values of other types, any attempt to retrieve them will result in
<span class="xref">System.InvalidCastException</span>. Use <a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html">ICache&lt;TK, TV&gt;</a> in order to work with entries
of arbitrary types.
<p>
All members are thread-safe and may be used concurrently from multiple threads.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Collections.Generic.IEnumerable&lt;Apache.Ignite.Core.Cache.ICacheEntry&lt;TK, TV&gt;&gt;.GetEnumerator()</span>
    </div>
    <div>
      <span class="xref">System.Collections.IEnumerable.GetEnumerator()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Cache.html">Apache.Ignite.Core.Cache</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
  <h5 id="Apache_Ignite_Core_Cache_ICache_2_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public interface ICache&lt;TK, TV&gt; : IEnumerable&lt;ICacheEntry&lt;TK, TV&gt;&gt;, IEnumerable</code></pre>
  </div>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TK</span></td>
        <td><p>Key type.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TV</span></td>
        <td><p>Value type.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
  </h3>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Ignite_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Ignite*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Ignite" data-uid="Apache.Ignite.Core.Cache.ICache`2.Ignite">Ignite</h4>
  <div class="markdown level1 summary"><p>Ignite hosting this cache.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IIgnite Ignite { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.IIgnite.html">IIgnite</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_IsAllowAtomicOpsInTx_" data-uid="Apache.Ignite.Core.Cache.ICache`2.IsAllowAtomicOpsInTx*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_IsAllowAtomicOpsInTx" data-uid="Apache.Ignite.Core.Cache.ICache`2.IsAllowAtomicOpsInTx">IsAllowAtomicOpsInTx</h4>
  <div class="markdown level1 summary"><p>Gets a value indicating whether to allow use atomic operations in transactions.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Obsolete(&quot;Not supported, will be removed in future releases.&quot;)]
bool IsAllowAtomicOpsInTx { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_IsKeepBinary_" data-uid="Apache.Ignite.Core.Cache.ICache`2.IsKeepBinary*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_IsKeepBinary" data-uid="Apache.Ignite.Core.Cache.ICache`2.IsKeepBinary">IsKeepBinary</h4>
  <div class="markdown level1 summary"><p>Gets a value indicating whether to keep values in binary form.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool IsKeepBinary { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Item_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Item*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Item__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Item(`0)">Item[TK]</h4>
  <div class="markdown level1 summary"><p>Gets or sets a cache value with the specified key.
Shortcut to <a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html#Apache_Ignite_Core_Cache_ICache_2_Get__0_">Get(TK)</a> and <a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html#Apache_Ignite_Core_Cache_ICache_2_Put__0__1_">Put(TK, TV)</a></p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">TV this[TK key] { get; set; }</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><p>Cache value with the specified key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.KeyNotFoundException</span></td>
        <td><p>If the key is not present in the cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Name_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Name*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Name" data-uid="Apache.Ignite.Core.Cache.ICache`2.Name">Name</h4>
  <div class="markdown level1 summary"><p>Name of this cache (<code>null</code> for default cache).</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">string Name { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Clear_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Clear*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Clear" data-uid="Apache.Ignite.Core.Cache.ICache`2.Clear">Clear()</h4>
  <div class="markdown level1 summary"><p>Clears the contents of the cache, without notifying listeners or CacheWriters.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void Clear()</code></pre>
  </div>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Clear_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Clear*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Clear__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Clear(`0)">Clear(TK)</h4>
  <div class="markdown level1 summary"><p>Clear entry from the cache and swap storage, without notifying listeners or CacheWriters.
Entry is cleared only if it is not currently locked, and is not participating in a transaction.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void Clear(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key to clear.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ClearAll_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ClearAll*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ClearAll_System_Collections_Generic_IEnumerable__0__" data-uid="Apache.Ignite.Core.Cache.ICache`2.ClearAll(System.Collections.Generic.IEnumerable{`0})">ClearAll(IEnumerable&lt;TK&gt;)</h4>
  <div class="markdown level1 summary"><p>Clear entries from the cache and swap storage, without notifying listeners or CacheWriters.
Entry is cleared only if it is not currently locked, and is not participating in a transaction.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void ClearAll(IEnumerable&lt;TK&gt; keys)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>Keys to clear.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ClearAllAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ClearAllAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ClearAllAsync_System_Collections_Generic_IEnumerable__0__" data-uid="Apache.Ignite.Core.Cache.ICache`2.ClearAllAsync(System.Collections.Generic.IEnumerable{`0})">ClearAllAsync(IEnumerable&lt;TK&gt;)</h4>
  <div class="markdown level1 summary"><p>Clear entries from the cache and swap storage, without notifying listeners or CacheWriters.
Entry is cleared only if it is not currently locked, and is not participating in a transaction.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task ClearAllAsync(IEnumerable&lt;TK&gt; keys)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>Keys to clear.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ClearAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ClearAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ClearAsync" data-uid="Apache.Ignite.Core.Cache.ICache`2.ClearAsync">ClearAsync()</h4>
  <div class="markdown level1 summary"><p>Clears the contents of the cache, without notifying listeners or CacheWriters.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task ClearAsync()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ClearAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ClearAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ClearAsync__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ClearAsync(`0)">ClearAsync(TK)</h4>
  <div class="markdown level1 summary"><p>Clear entry from the cache and swap storage, without notifying listeners or CacheWriters.
Entry is cleared only if it is not currently locked, and is not participating in a transaction.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task ClearAsync(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key to clear.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ClearStatistics_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ClearStatistics*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ClearStatistics" data-uid="Apache.Ignite.Core.Cache.ICache`2.ClearStatistics">ClearStatistics()</h4>
  <div class="markdown level1 summary"><p>Clears cluster statistics for this cache.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void ClearStatistics()</code></pre>
  </div>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ContainsKey_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ContainsKey*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ContainsKey__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ContainsKey(`0)">ContainsKey(TK)</h4>
  <div class="markdown level1 summary"><p>Check if cache contains mapping for this key.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool ContainsKey(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if cache contains mapping for this key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ContainsKeyAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ContainsKeyAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ContainsKeyAsync__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ContainsKeyAsync(`0)">ContainsKeyAsync(TK)</h4>
  <div class="markdown level1 summary"><p>Check if cache contains mapping for this key.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;bool&gt; ContainsKeyAsync(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
        <td><p>True if cache contains mapping for this key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ContainsKeys_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ContainsKeys*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ContainsKeys_System_Collections_Generic_IEnumerable__0__" data-uid="Apache.Ignite.Core.Cache.ICache`2.ContainsKeys(System.Collections.Generic.IEnumerable{`0})">ContainsKeys(IEnumerable&lt;TK&gt;)</h4>
  <div class="markdown level1 summary"><p>Check if cache contains mapping for these keys.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool ContainsKeys(IEnumerable&lt;TK&gt; keys)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>Keys.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if cache contains mapping for all these keys.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ContainsKeysAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ContainsKeysAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ContainsKeysAsync_System_Collections_Generic_IEnumerable__0__" data-uid="Apache.Ignite.Core.Cache.ICache`2.ContainsKeysAsync(System.Collections.Generic.IEnumerable{`0})">ContainsKeysAsync(IEnumerable&lt;TK&gt;)</h4>
  <div class="markdown level1 summary"><p>Check if cache contains mapping for these keys.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;bool&gt; ContainsKeysAsync(IEnumerable&lt;TK&gt; keys)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>Keys.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
        <td><p>True if cache contains mapping for all these keys.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_EnableStatistics_" data-uid="Apache.Ignite.Core.Cache.ICache`2.EnableStatistics*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_EnableStatistics_System_Boolean_" data-uid="Apache.Ignite.Core.Cache.ICache`2.EnableStatistics(System.Boolean)">EnableStatistics(Boolean)</h4>
  <div class="markdown level1 summary"><p>Sets statistics (metrics) enabled flag cluster wide for this cache.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void EnableStatistics(bool enabled)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">enabled</span></td>
        <td><p>Enabled flag</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Get_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Get*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Get__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Get(`0)">Get(TK)</h4>
  <div class="markdown level1 summary"><p>Retrieves value mapped to the specified key from cache.</p>
<p>If the value is not present in cache, then it will be looked up from swap storage. If
it&apos;s not present in swap, or if swap is disable, and if read-through is allowed, value
will be loaded from persistent store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">TV Get(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><p>Value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.KeyNotFoundException</span></td>
        <td><p>If the key is not present in the cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetAll_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAll*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetAll_System_Collections_Generic_IEnumerable__0__" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAll(System.Collections.Generic.IEnumerable{`0})">GetAll(IEnumerable&lt;TK&gt;)</h4>
  <div class="markdown level1 summary"><p>Retrieves values mapped to the specified keys from cache.
If some value is not present in cache, then it will be looked up from swap storage. If
it&apos;s not present in swap, or if swap is disabled, and if read-through is allowed, value
will be loaded from persistent store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICollection&lt;ICacheEntry&lt;TK, TV&gt;&gt; GetAll(IEnumerable&lt;TK&gt; keys)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>Keys.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.ICollection</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TK, TV&gt;&gt;</td>
        <td><p>Map of key-value pairs.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetAllAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAllAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetAllAsync_System_Collections_Generic_IEnumerable__0__" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAllAsync(System.Collections.Generic.IEnumerable{`0})">GetAllAsync(IEnumerable&lt;TK&gt;)</h4>
  <div class="markdown level1 summary"><p>Retrieves values mapped to the specified keys from cache.
If some value is not present in cache, then it will be looked up from swap storage. If
it&apos;s not present in swap, or if swap is disabled, and if read-through is allowed, value
will be loaded from persistent store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;ICollection&lt;ICacheEntry&lt;TK, TV&gt;&gt;&gt; GetAllAsync(IEnumerable&lt;TK&gt; keys)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>Keys.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Collections.Generic.ICollection</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TK, TV&gt;&gt;&gt;</td>
        <td><p>Map of key-value pairs.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetAndPut_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndPut*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetAndPut__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndPut(`0,`1)">GetAndPut(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Associates the specified value with the specified key in this cache,
returning an existing value if one existed.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">CacheResult&lt;TV&gt; GetAndPut(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key with which the specified value is to be associated.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the specified key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CacheResult-1.html">CacheResult</a>&lt;TV&gt;</td>
        <td><p>The value associated with the key at the start of the operation.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetAndPutAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndPutAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetAndPutAsync__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndPutAsync(`0,`1)">GetAndPutAsync(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Associates the specified value with the specified key in this cache,
returning an existing value if one existed.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;CacheResult&lt;TV&gt;&gt; GetAndPutAsync(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key with which the specified value is to be associated.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the specified key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.CacheResult-1.html">CacheResult</a>&lt;TV&gt;&gt;</td>
        <td><p>The value associated with the key at the start of the operation.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetAndPutIfAbsent_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndPutIfAbsent*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetAndPutIfAbsent__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndPutIfAbsent(`0,`1)">GetAndPutIfAbsent(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Stores given key-value pair in cache only if cache had no previous mapping for it.
If cache previously contained value for the given key, then this value is returned.
In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node,
which in its turn may load the value from the swap storage, and consecutively, if it&apos;s not
in swap, from the underlying persistent storage.
If the returned value is not needed, method putxIfAbsent() should be used instead of this one to
avoid the overhead associated with returning of the previous value.
If write-through is enabled, the stored value will be persisted to store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">CacheResult&lt;TV&gt; GetAndPutIfAbsent(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key to store in cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the given key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CacheResult-1.html">CacheResult</a>&lt;TV&gt;</td>
        <td><p>Previously contained value regardless of whether put happened or not.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetAndPutIfAbsentAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndPutIfAbsentAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetAndPutIfAbsentAsync__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndPutIfAbsentAsync(`0,`1)">GetAndPutIfAbsentAsync(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Stores given key-value pair in cache only if cache had no previous mapping for it.
If cache previously contained value for the given key, then this value is returned.
In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node,
which in its turn may load the value from the swap storage, and consecutively, if it&apos;s not
in swap, from the underlying persistent storage.
If the returned value is not needed, method putxIfAbsent() should be used instead of this one to
avoid the overhead associated with returning of the previous value.
If write-through is enabled, the stored value will be persisted to store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;CacheResult&lt;TV&gt;&gt; GetAndPutIfAbsentAsync(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key to store in cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the given key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.CacheResult-1.html">CacheResult</a>&lt;TV&gt;&gt;</td>
        <td><p>Previously contained value regardless of whether put happened or not.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetAndRemove_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndRemove*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetAndRemove__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndRemove(`0)">GetAndRemove(TK)</h4>
  <div class="markdown level1 summary"><p>Atomically removes the entry for a key only if currently mapped to some value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">CacheResult&lt;TV&gt; GetAndRemove(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key with which the specified value is associated.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CacheResult-1.html">CacheResult</a>&lt;TV&gt;</td>
        <td><p>The value if one existed.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetAndRemoveAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndRemoveAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetAndRemoveAsync__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndRemoveAsync(`0)">GetAndRemoveAsync(TK)</h4>
  <div class="markdown level1 summary"><p>Atomically removes the entry for a key only if currently mapped to some value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;CacheResult&lt;TV&gt;&gt; GetAndRemoveAsync(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key with which the specified value is associated.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.CacheResult-1.html">CacheResult</a>&lt;TV&gt;&gt;</td>
        <td><p>The value if one existed.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetAndReplace_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndReplace*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetAndReplace__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndReplace(`0,`1)">GetAndReplace(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Atomically replaces the value for a given key if and only if there is a value currently mapped by the key.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">CacheResult&lt;TV&gt; GetAndReplace(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key with which the specified value is to be associated.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the specified key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CacheResult-1.html">CacheResult</a>&lt;TV&gt;</td>
        <td><p>The previous value associated with the specified key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetAndReplaceAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndReplaceAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetAndReplaceAsync__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAndReplaceAsync(`0,`1)">GetAndReplaceAsync(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Atomically replaces the value for a given key if and only if there is a value currently mapped by the key.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;CacheResult&lt;TV&gt;&gt; GetAndReplaceAsync(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key with which the specified value is to be associated.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the specified key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.CacheResult-1.html">CacheResult</a>&lt;TV&gt;&gt;</td>
        <td><p>The previous value associated with the specified key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetAsync__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetAsync(`0)">GetAsync(TK)</h4>
  <div class="markdown level1 summary"><p>Retrieves value mapped to the specified key from cache.</p>
<p>If the value is not present in cache, then it will be looked up from swap storage. If
it&apos;s not present in swap, or if swap is disable, and if read-through is allowed, value
will be loaded from persistent store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;TV&gt; GetAsync(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;TV&gt;</td>
        <td><p>Value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.KeyNotFoundException</span></td>
        <td><p>If the key is not present in the cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetConfiguration_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetConfiguration*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetConfiguration" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetConfiguration">GetConfiguration()</h4>
  <div class="markdown level1 summary"><p>Gets the cache configuration.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">CacheConfiguration GetConfiguration()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html">CacheConfiguration</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetLocalEntries_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLocalEntries*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetLocalEntries_Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLocalEntries(Apache.Ignite.Core.Cache.CachePeekMode[])">GetLocalEntries(CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Get local cache entries.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IEnumerable&lt;ICacheEntry&lt;TK, TV&gt;&gt; GetLocalEntries(params CachePeekMode[] peekModes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">peekModes</span></td>
        <td><p>Peek modes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TK, TV&gt;&gt;</td>
        <td><p>Enumerable instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetLocalMetrics_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLocalMetrics*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetLocalMetrics" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLocalMetrics">GetLocalMetrics()</h4>
  <div class="markdown level1 summary"><p>Gets local snapshot metrics (statistics) for this cache.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICacheMetrics GetLocalMetrics()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheMetrics.html">ICacheMetrics</a></td>
        <td><p>Cache metrics.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetLocalSize_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLocalSize*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetLocalSize_Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLocalSize(Apache.Ignite.Core.Cache.CachePeekMode[])">GetLocalSize(CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Gets the number of all entries cached on this node.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">int GetLocalSize(params CachePeekMode[] modes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">modes</span></td>
        <td><p>Optional peek modes. If not provided, then total cache size is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>Cache size on this node.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetLocalSizeLong_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLocalSizeLong*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetLocalSizeLong_Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLocalSizeLong(Apache.Ignite.Core.Cache.CachePeekMode[])">GetLocalSizeLong(CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Gets the number of all entries cached on this node as long value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">long GetLocalSizeLong(params CachePeekMode[] modes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">modes</span></td>
        <td><p>Optional peek modes. If not provided, then total cache size is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int64</span></td>
        <td><p>Cache size on this node.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetLocalSizeLong_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLocalSizeLong*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetLocalSizeLong_System_Int32_Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLocalSizeLong(System.Int32,Apache.Ignite.Core.Cache.CachePeekMode[])">GetLocalSizeLong(Int32, CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Gets the number of all entries in a partition cached on this node as long value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">long GetLocalSizeLong(int partition, params CachePeekMode[] modes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">partition</span></td>
        <td><p>Cache partition.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">modes</span></td>
        <td><p>Optional peek modes. If not provided, then total cache size is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int64</span></td>
        <td><p>Partition cache size on this node.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetLostPartitions_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLostPartitions*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetLostPartitions" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetLostPartitions">GetLostPartitions()</h4>
  <div class="markdown level1 summary"><p>Gets lost partitions IDs.
<p>
See also <a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html#Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_PartitionLossPolicy">PartitionLossPolicy</a>
and <a class="xref" href="Apache.Ignite.Core.IIgnite.html#Apache_Ignite_Core_IIgnite_ResetLostPartitions_System_Collections_Generic_IEnumerable_System_String__">ResetLostPartitions(IEnumerable&lt;String&gt;)</a>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICollection&lt;int&gt; GetLostPartitions()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.ICollection</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetMetrics_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetMetrics*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetMetrics" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetMetrics">GetMetrics()</h4>
  <div class="markdown level1 summary"><p>Gets global (whole cluster) snapshot metrics (statistics) for this cache.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICacheMetrics GetMetrics()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheMetrics.html">ICacheMetrics</a></td>
        <td><p>Cache metrics.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetMetrics_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetMetrics*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetMetrics_Apache_Ignite_Core_Cluster_IClusterGroup_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetMetrics(Apache.Ignite.Core.Cluster.IClusterGroup)">GetMetrics(IClusterGroup)</h4>
  <div class="markdown level1 summary"><p>Gets global (whole cluster group) snapshot metrics (statistics) for this cache.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICacheMetrics GetMetrics(IClusterGroup clusterGroup)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cluster.IClusterGroup.html">IClusterGroup</a></td>
        <td><span class="parametername">clusterGroup</span></td>
        <td><p>The cluster group to get metrics for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheMetrics.html">ICacheMetrics</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetQueryMetrics_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetQueryMetrics*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetQueryMetrics" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetQueryMetrics">GetQueryMetrics()</h4>
  <div class="markdown level1 summary"><p>Gets query metrics.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IQueryMetrics GetQueryMetrics()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.IQueryMetrics.html">IQueryMetrics</a></td>
        <td><p>Query metrics.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetSize_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSize*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetSize_Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSize(Apache.Ignite.Core.Cache.CachePeekMode[])">GetSize(CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Gets the number of all entries cached across all nodes.
<p>
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">int GetSize(params CachePeekMode[] modes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">modes</span></td>
        <td><p>Optional peek modes. If not provided, then total cache size is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>Cache size across all nodes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetSizeAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSizeAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetSizeAsync_Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSizeAsync(Apache.Ignite.Core.Cache.CachePeekMode[])">GetSizeAsync(CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Gets the number of all entries cached across all nodes.
<p>
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;int&gt; GetSizeAsync(params CachePeekMode[] modes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">modes</span></td>
        <td><p>Optional peek modes. If not provided, then total cache size is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><p>Cache size across all nodes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetSizeLong_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSizeLong*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetSizeLong_Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSizeLong(Apache.Ignite.Core.Cache.CachePeekMode[])">GetSizeLong(CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Gets the number of all entries cached across all nodes as long value.
<p>
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">long GetSizeLong(params CachePeekMode[] modes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">modes</span></td>
        <td><p>Optional peek modes. If not provided, then total cache size is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int64</span></td>
        <td><p>Cache size across all nodes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetSizeLong_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSizeLong*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetSizeLong_System_Int32_Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSizeLong(System.Int32,Apache.Ignite.Core.Cache.CachePeekMode[])">GetSizeLong(Int32, CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Gets the number of all entries in partition cached across all nodes as long value.
<p>
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">long GetSizeLong(int partition, params CachePeekMode[] modes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">partition</span></td>
        <td><p>Cache partition.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">modes</span></td>
        <td><p>Optional peek modes. If not provided, then total cache size is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int64</span></td>
        <td><p>Partition cache size across all nodes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetSizeLongAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSizeLongAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetSizeLongAsync_Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSizeLongAsync(Apache.Ignite.Core.Cache.CachePeekMode[])">GetSizeLongAsync(CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Gets the number of all entries cached across all nodes as long value.
<p>
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;long&gt; GetSizeLongAsync(params CachePeekMode[] modes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">modes</span></td>
        <td><p>Optional peek modes. If not provided, then total cache size is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Int64</span>&gt;</td>
        <td><p>Cache size across all nodes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_GetSizeLongAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSizeLongAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_GetSizeLongAsync_System_Int32_Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.GetSizeLongAsync(System.Int32,Apache.Ignite.Core.Cache.CachePeekMode[])">GetSizeLongAsync(Int32, CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Gets the number of all entries in a partition cached across all nodes as long value.
<p>
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;long&gt; GetSizeLongAsync(int partition, params CachePeekMode[] modes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">partition</span></td>
        <td><p>Cache partition.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">modes</span></td>
        <td><p>Optional peek modes. If not provided, then total cache size is returned.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Int64</span>&gt;</td>
        <td><p>Partition cache size across all nodes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Invoke_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Invoke*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Invoke__2__0_Apache_Ignite_Core_Cache_ICacheEntryProcessor__0__1___0___1____0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Invoke``2(`0,Apache.Ignite.Core.Cache.ICacheEntryProcessor{`0,`1,``0,``1},``0)">Invoke&lt;TArg, TRes&gt;(TK, ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt;, TArg)</h4>
  <div class="markdown level1 summary"><p>Invokes an <a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessor-4.html">ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt;</a> against the
<a class="xref" href="Apache.Ignite.Core.Cache.IMutableCacheEntry-2.html">IMutableCacheEntry&lt;TK, TV&gt;</a> specified by the provided key.
If an entry does not exist for the specified key, an attempt is made to load it (if a loader is configured)
or a surrogate entry, consisting of the key with a null value is used instead.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">TRes Invoke&lt;TArg, TRes&gt;(TK key, ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt; processor, TArg arg)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>The key.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessor-4.html">ICacheEntryProcessor</a>&lt;TK, TV, TArg, TRes&gt;</td>
        <td><span class="parametername">processor</span></td>
        <td><p>The processor.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TArg</span></td>
        <td><span class="parametername">arg</span></td>
        <td><p>The argument.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TRes</span></td>
        <td><p>Result of the processing.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TArg</span></td>
        <td><p>The type of the argument.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TRes</span></td>
        <td><p>The type of the result.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CacheEntryProcessorException.html">CacheEntryProcessorException</a></td>
        <td><p>If an exception has occured during processing.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_InvokeAll_" data-uid="Apache.Ignite.Core.Cache.ICache`2.InvokeAll*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_InvokeAll__2_System_Collections_Generic_IEnumerable__0__Apache_Ignite_Core_Cache_ICacheEntryProcessor__0__1___0___1____0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.InvokeAll``2(System.Collections.Generic.IEnumerable{`0},Apache.Ignite.Core.Cache.ICacheEntryProcessor{`0,`1,``0,``1},``0)">InvokeAll&lt;TArg, TRes&gt;(IEnumerable&lt;TK&gt;, ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt;, TArg)</h4>
  <div class="markdown level1 summary"><p>Invokes an <a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessor-4.html">ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt;</a> against a set of keys.
If an entry does not exist for the specified key, an attempt is made to load it (if a loader is configured)
or a surrogate entry, consisting of the key with a null value is used instead.</p>
<p>The order that the entries for the keys are processed is undefined.
Implementations may choose to process the entries in any order, including concurrently.
Furthermore there is no guarantee implementations will use the same processor instance
to process each entry, as the case may be in a non-local cache topology.</p>
<p>Keys are locked in the order in which they are enumerated. It is caller&apos;s responsibility to
make sure keys always follow same order, such as by using <span class="xref">System.Collections.Generic.SortedSet`1</span>. Using unordered
collection, such as <span class="xref">System.Collections.Generic.HashSet`1</span>, while calling this method in parallel <strong>will lead to deadlock</strong>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICollection&lt;ICacheEntryProcessorResult&lt;TK, TRes&gt;&gt; InvokeAll&lt;TArg, TRes&gt;(IEnumerable&lt;TK&gt; keys, ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt; processor, TArg arg)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>The keys.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessor-4.html">ICacheEntryProcessor</a>&lt;TK, TV, TArg, TRes&gt;</td>
        <td><span class="parametername">processor</span></td>
        <td><p>The processor.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TArg</span></td>
        <td><span class="parametername">arg</span></td>
        <td><p>The argument.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.ICollection</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessorResult-2.html">ICacheEntryProcessorResult</a>&lt;TK, TRes&gt;&gt;</td>
        <td><p>Map of <a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessorResult-2.html">ICacheEntryProcessorResult&lt;TK, T&gt;</a> of the processing per key, if any,
defined by the <a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessor-4.html">ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt;</a> implementation.
No mappings will be returned for processors that return a null value for a key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TArg</span></td>
        <td><p>The type of the argument.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TRes</span></td>
        <td><p>The type of the result.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CacheEntryProcessorException.html">CacheEntryProcessorException</a></td>
        <td><p>If an exception has occured during processing.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_InvokeAllAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.InvokeAllAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_InvokeAllAsync__2_System_Collections_Generic_IEnumerable__0__Apache_Ignite_Core_Cache_ICacheEntryProcessor__0__1___0___1____0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.InvokeAllAsync``2(System.Collections.Generic.IEnumerable{`0},Apache.Ignite.Core.Cache.ICacheEntryProcessor{`0,`1,``0,``1},``0)">InvokeAllAsync&lt;TArg, TRes&gt;(IEnumerable&lt;TK&gt;, ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt;, TArg)</h4>
  <div class="markdown level1 summary"><p>Invokes an <a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessor-4.html">ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt;</a> against a set of keys.
If an entry does not exist for the specified key, an attempt is made to load it (if a loader is configured)
or a surrogate entry, consisting of the key with a null value is used instead.</p>
<p>The order that the entries for the keys are processed is undefined.
Implementations may choose to process the entries in any order, including concurrently.
Furthermore there is no guarantee implementations will use the same processor instance
to process each entry, as the case may be in a non-local cache topology.</p>
<p>Keys are locked in the order in which they are enumerated. It is caller&apos;s responsibility to
make sure keys always follow same order, such as by using <span class="xref">System.Collections.Generic.SortedSet`1</span>. Using unordered
collection, such as <span class="xref">System.Collections.Generic.HashSet`1</span>, while calling this method in parallel <strong>will lead to deadlock</strong>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;ICollection&lt;ICacheEntryProcessorResult&lt;TK, TRes&gt;&gt;&gt; InvokeAllAsync&lt;TArg, TRes&gt;(IEnumerable&lt;TK&gt; keys, ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt; processor, TArg arg)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>The keys.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessor-4.html">ICacheEntryProcessor</a>&lt;TK, TV, TArg, TRes&gt;</td>
        <td><span class="parametername">processor</span></td>
        <td><p>The processor.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TArg</span></td>
        <td><span class="parametername">arg</span></td>
        <td><p>The argument.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Collections.Generic.ICollection</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessorResult-2.html">ICacheEntryProcessorResult</a>&lt;TK, TRes&gt;&gt;&gt;</td>
        <td><p>Map of <a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessorResult-2.html">ICacheEntryProcessorResult&lt;TK, T&gt;</a> of the processing per key, if any,
defined by the <a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessor-4.html">ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt;</a> implementation.
No mappings will be returned for processors that return a null value for a key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TArg</span></td>
        <td><p>The type of the argument.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TRes</span></td>
        <td><p>The type of the result.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CacheEntryProcessorException.html">CacheEntryProcessorException</a></td>
        <td><p>If an exception has occured during processing.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_InvokeAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.InvokeAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_InvokeAsync__2__0_Apache_Ignite_Core_Cache_ICacheEntryProcessor__0__1___0___1____0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.InvokeAsync``2(`0,Apache.Ignite.Core.Cache.ICacheEntryProcessor{`0,`1,``0,``1},``0)">InvokeAsync&lt;TArg, TRes&gt;(TK, ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt;, TArg)</h4>
  <div class="markdown level1 summary"><p>Invokes an <a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessor-4.html">ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt;</a> against the
<a class="xref" href="Apache.Ignite.Core.Cache.IMutableCacheEntry-2.html">IMutableCacheEntry&lt;TK, TV&gt;</a> specified by the provided key.
If an entry does not exist for the specified key, an attempt is made to load it (if a loader is configured)
or a surrogate entry, consisting of the key with a null value is used instead.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;TRes&gt; InvokeAsync&lt;TArg, TRes&gt;(TK key, ICacheEntryProcessor&lt;TK, TV, TArg, TRes&gt; processor, TArg arg)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>The key.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryProcessor-4.html">ICacheEntryProcessor</a>&lt;TK, TV, TArg, TRes&gt;</td>
        <td><span class="parametername">processor</span></td>
        <td><p>The processor.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TArg</span></td>
        <td><span class="parametername">arg</span></td>
        <td><p>The argument.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;TRes&gt;</td>
        <td><p>Result of the processing.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TArg</span></td>
        <td><p>The type of the argument.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TRes</span></td>
        <td><p>The type of the result.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CacheEntryProcessorException.html">CacheEntryProcessorException</a></td>
        <td><p>If an exception has occured during processing.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_IsEmpty_" data-uid="Apache.Ignite.Core.Cache.ICache`2.IsEmpty*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_IsEmpty" data-uid="Apache.Ignite.Core.Cache.ICache`2.IsEmpty">IsEmpty()</h4>
  <div class="markdown level1 summary"><p>Checks whether this cache contains no key-value mappings.
<p>
Semantically equals to <code>ICache.Size(CachePeekMode.PRIMARY) == 0</code>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool IsEmpty()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_IsLocalLocked_" data-uid="Apache.Ignite.Core.Cache.ICache`2.IsLocalLocked*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_IsLocalLocked__0_System_Boolean_" data-uid="Apache.Ignite.Core.Cache.ICache`2.IsLocalLocked(`0,System.Boolean)">IsLocalLocked(TK, Boolean)</h4>
  <div class="markdown level1 summary"><p>Checks if specified key is locked.
<p>
This is a local operation and does not involve any network trips
or access to persistent storage in any way.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool IsLocalLocked(TK key, bool byCurrentThread)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key to check.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">byCurrentThread</span></td>
        <td><p>If true, checks that current thread owns a lock on this key;
otherwise, checks that any thread on any node owns a lock on this key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if specified key is locked; otherwise, false.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LoadAll_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LoadAll*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LoadAll_System_Collections_Generic_IEnumerable__0__System_Boolean_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LoadAll(System.Collections.Generic.IEnumerable{`0},System.Boolean)">LoadAll(IEnumerable&lt;TK&gt;, Boolean)</h4>
  <div class="markdown level1 summary"><p>Loads the specified entries into the cache using the configured
<a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore.html">ICacheStore</a>&gt; for the given keys.
<p>
If an entry for a key already exists in the cache, a value will be loaded if and only if
<code data-dev-comment-type="paramref" class="paramref">replaceExistingValues</code> is true.
If no loader is configured for the cache, no objects will be loaded.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void LoadAll(IEnumerable&lt;TK&gt; keys, bool replaceExistingValues)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>The keys to load.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">replaceExistingValues</span></td>
        <td><p>if set to <code>true</code>, existing cache values will
be replaced by those loaded from a cache store.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LoadAllAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LoadAllAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LoadAllAsync_System_Collections_Generic_IEnumerable__0__System_Boolean_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LoadAllAsync(System.Collections.Generic.IEnumerable{`0},System.Boolean)">LoadAllAsync(IEnumerable&lt;TK&gt;, Boolean)</h4>
  <div class="markdown level1 summary"><p>Asynchronously loads the specified entries into the cache using the configured
<a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore.html">ICacheStore</a>&gt; for the given keys.
<p>
If an entry for a key already exists in the cache, a value will be loaded if and only if
<code data-dev-comment-type="paramref" class="paramref">replaceExistingValues</code> is true.
If no loader is configured for the cache, no objects will be loaded.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task LoadAllAsync(IEnumerable&lt;TK&gt; keys, bool replaceExistingValues)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>The keys to load.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">replaceExistingValues</span></td>
        <td><p>if set to <code>true</code>, existing cache values will
be replaced by those loaded from a cache store.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LoadCache_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LoadCache*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LoadCache_Apache_Ignite_Core_Cache_ICacheEntryFilter__0__1__System_Object___" data-uid="Apache.Ignite.Core.Cache.ICache`2.LoadCache(Apache.Ignite.Core.Cache.ICacheEntryFilter{`0,`1},System.Object[])">LoadCache(ICacheEntryFilter&lt;TK, TV&gt;, Object[])</h4>
  <div class="markdown level1 summary"><p>Executes <a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html#Apache_Ignite_Core_Cache_ICache_2_LocalLoadCache_Apache_Ignite_Core_Cache_ICacheEntryFilter__0__1__System_Object___">LocalLoadCache(ICacheEntryFilter&lt;TK, TV&gt;, Object[])</a> on all cache nodes.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void LoadCache(ICacheEntryFilter&lt;TK, TV&gt; p, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryFilter-2.html">ICacheEntryFilter</a>&lt;TK, TV&gt;</td>
        <td><span class="parametername">p</span></td>
        <td><p>Optional predicate. If provided, will be used to filter values to be put into cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>Optional user arguments to be passed into <a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore-2.html#Apache_Ignite_Core_Cache_Store_ICacheStore_2_LoadCache_System_Action__0__1__System_Object___">LoadCache(Action&lt;TK, TV&gt;, Object[])</a>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LoadCacheAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LoadCacheAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LoadCacheAsync_Apache_Ignite_Core_Cache_ICacheEntryFilter__0__1__System_Object___" data-uid="Apache.Ignite.Core.Cache.ICache`2.LoadCacheAsync(Apache.Ignite.Core.Cache.ICacheEntryFilter{`0,`1},System.Object[])">LoadCacheAsync(ICacheEntryFilter&lt;TK, TV&gt;, Object[])</h4>
  <div class="markdown level1 summary"><p>Executes <a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html#Apache_Ignite_Core_Cache_ICache_2_LocalLoadCache_Apache_Ignite_Core_Cache_ICacheEntryFilter__0__1__System_Object___">LocalLoadCache(ICacheEntryFilter&lt;TK, TV&gt;, Object[])</a> on all cache nodes.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task LoadCacheAsync(ICacheEntryFilter&lt;TK, TV&gt; p, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryFilter-2.html">ICacheEntryFilter</a>&lt;TK, TV&gt;</td>
        <td><span class="parametername">p</span></td>
        <td><p>Optional predicate. If provided, will be used to filter values to be put into cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>Optional user arguments to be passed into <a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore-2.html#Apache_Ignite_Core_Cache_Store_ICacheStore_2_LoadCache_System_Action__0__1__System_Object___">LoadCache(Action&lt;TK, TV&gt;, Object[])</a>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LocalClear_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalClear*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LocalClear__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalClear(`0)">LocalClear(TK)</h4>
  <div class="markdown level1 summary"><p>Clear entry from the cache and swap storage, without notifying listeners or CacheWriters.
Entry is cleared only if it is not currently locked, and is not participating in a transaction.
<p>
Note that this operation is local as it merely clears
an entry from local cache, it does not remove entries from remote caches.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void LocalClear(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key to clear.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LocalClearAll_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalClearAll*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LocalClearAll_System_Collections_Generic_IEnumerable__0__" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalClearAll(System.Collections.Generic.IEnumerable{`0})">LocalClearAll(IEnumerable&lt;TK&gt;)</h4>
  <div class="markdown level1 summary"><p>Clear entries from the cache and swap storage, without notifying listeners or CacheWriters.
Entry is cleared only if it is not currently locked, and is not participating in a transaction.
<p>
Note that this operation is local as it merely clears
entries from local cache, it does not remove entries from remote caches.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void LocalClearAll(IEnumerable&lt;TK&gt; keys)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>Keys to clear.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LocalEvict_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalEvict*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LocalEvict_System_Collections_Generic_IEnumerable__0__" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalEvict(System.Collections.Generic.IEnumerable{`0})">LocalEvict(IEnumerable&lt;TK&gt;)</h4>
  <div class="markdown level1 summary"><p>Attempts to evict all entries associated with keys. Note, that entry will be evicted only
if it&apos;s not used (not participating in any locks or transactions).</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void LocalEvict(IEnumerable&lt;TK&gt; keys)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>Keys to evict from cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LocalLoadCache_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalLoadCache*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LocalLoadCache_Apache_Ignite_Core_Cache_ICacheEntryFilter__0__1__System_Object___" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalLoadCache(Apache.Ignite.Core.Cache.ICacheEntryFilter{`0,`1},System.Object[])">LocalLoadCache(ICacheEntryFilter&lt;TK, TV&gt;, Object[])</h4>
  <div class="markdown level1 summary"><p>Delegates to <a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore-2.html#Apache_Ignite_Core_Cache_Store_ICacheStore_2_LoadCache_System_Action__0__1__System_Object___">LoadCache(Action&lt;TK, TV&gt;, Object[])</a> method to load state
from the underlying persistent storage. The loaded values will then be given
to the optionally passed in predicate, and, if the predicate returns true,
will be stored in cache. If predicate is null, then all loaded values will be stored in cache.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void LocalLoadCache(ICacheEntryFilter&lt;TK, TV&gt; p, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryFilter-2.html">ICacheEntryFilter</a>&lt;TK, TV&gt;</td>
        <td><span class="parametername">p</span></td>
        <td><p>Optional predicate. If provided, will be used to filter values to be put into cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>Optional user arguments to be passed into <a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore-2.html#Apache_Ignite_Core_Cache_Store_ICacheStore_2_LoadCache_System_Action__0__1__System_Object___">LoadCache(Action&lt;TK, TV&gt;, Object[])</a>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LocalLoadCacheAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalLoadCacheAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LocalLoadCacheAsync_Apache_Ignite_Core_Cache_ICacheEntryFilter__0__1__System_Object___" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalLoadCacheAsync(Apache.Ignite.Core.Cache.ICacheEntryFilter{`0,`1},System.Object[])">LocalLoadCacheAsync(ICacheEntryFilter&lt;TK, TV&gt;, Object[])</h4>
  <div class="markdown level1 summary"><p>Delegates to <a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore-2.html#Apache_Ignite_Core_Cache_Store_ICacheStore_2_LoadCache_System_Action__0__1__System_Object___">LoadCache(Action&lt;TK, TV&gt;, Object[])</a> method to load state
from the underlying persistent storage. The loaded values will then be given
to the optionally passed in predicate, and, if the predicate returns true,
will be stored in cache. If predicate is null, then all loaded values will be stored in cache.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task LocalLoadCacheAsync(ICacheEntryFilter&lt;TK, TV&gt; p, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntryFilter-2.html">ICacheEntryFilter</a>&lt;TK, TV&gt;</td>
        <td><span class="parametername">p</span></td>
        <td><p>Optional predicate. If provided, will be used to filter values to be put into cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>Optional user arguments to be passed into <a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore-2.html#Apache_Ignite_Core_Cache_Store_ICacheStore_2_LoadCache_System_Action__0__1__System_Object___">LoadCache(Action&lt;TK, TV&gt;, Object[])</a>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LocalPeek_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalPeek*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LocalPeek__0_Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalPeek(`0,Apache.Ignite.Core.Cache.CachePeekMode[])">LocalPeek(TK, CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Peeks at cached value using optional set of peek modes. This method will sequentially
iterate over given peek modes, and try to peek at value using each peek mode. Once a
non-null value is found, it will be immediately returned.
This method does not participate in any transactions, however, it may peek at transactional
value depending on the peek modes used.
If key is not present in cache, KeyNotFoundException will be thrown.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">TV LocalPeek(TK key, params CachePeekMode[] modes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">modes</span></td>
        <td><p>Peek modes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><p>Peeked value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LocalPreloadPartition_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalPreloadPartition*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LocalPreloadPartition_System_Int32_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LocalPreloadPartition(System.Int32)">LocalPreloadPartition(Int32)</h4>
  <div class="markdown level1 summary"><p>Efficiently preloads cache partition into page memory if it exists on the local node.
<p>
This is useful for fast iteration over cache partition data if persistence is enabled and the data is &quot;cold&quot;.
<p>
Preload will reduce available amount of page memory for subsequent operations and may lead to earlier page
replacement.
<p>
This method is irrelevant for in-memory caches.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool LocalPreloadPartition(int partition)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">partition</span></td>
        <td><p>Partition number.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><pre><code>True</code></pre>if partition was preloaded, <pre><code>False</code></pre> if it doesn&apos;t belong to local node.</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Lock_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Lock*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Lock__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Lock(`0)">Lock(TK)</h4>
  <div class="markdown level1 summary"><p>Creates an <a class="xref" href="Apache.Ignite.Core.Cache.ICacheLock.html">ICacheLock</a> instance associated with passed key.
This method does not acquire lock immediately, you have to call appropriate method on returned instance.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICacheLock Lock(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key for lock.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheLock.html">ICacheLock</a></td>
        <td><p>New <a class="xref" href="Apache.Ignite.Core.Cache.ICacheLock.html">ICacheLock</a> instance associated with passed key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_LockAll_" data-uid="Apache.Ignite.Core.Cache.ICache`2.LockAll*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_LockAll_System_Collections_Generic_IEnumerable__0__" data-uid="Apache.Ignite.Core.Cache.ICache`2.LockAll(System.Collections.Generic.IEnumerable{`0})">LockAll(IEnumerable&lt;TK&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates an <a class="xref" href="Apache.Ignite.Core.Cache.ICacheLock.html">ICacheLock</a> instance associated with passed keys.
This method does not acquire lock immediately, you have to call appropriate method on returned instance.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICacheLock LockAll(IEnumerable&lt;TK&gt; keys)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>Keys for lock.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICacheLock.html">ICacheLock</a></td>
        <td><p>New <a class="xref" href="Apache.Ignite.Core.Cache.ICacheLock.html">ICacheLock</a> instance associated with passed keys.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_PreloadPartition_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PreloadPartition*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_PreloadPartition_System_Int32_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PreloadPartition(System.Int32)">PreloadPartition(Int32)</h4>
  <div class="markdown level1 summary"><p>Efficiently preloads cache partition into page memory.
<p>
This is useful for fast iteration over cache partition data if persistence is enabled and the data is &quot;cold&quot;.
<p>
Preload will reduce available amount of page memory for subsequent operations and may lead to earlier page
replacement.
<p>
This method is irrelevant for in-memory caches. Calling this method on an in-memory cache will result in
exception.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void PreloadPartition(int partition)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">partition</span></td>
        <td><p>Partition number.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_PreloadPartitionAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PreloadPartitionAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_PreloadPartitionAsync_System_Int32_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PreloadPartitionAsync(System.Int32)">PreloadPartitionAsync(Int32)</h4>
  <div class="markdown level1 summary"><p>Efficiently preloads cache partition into page memory asynchronously.
<p>
This is useful for fast iteration over cache partition data if persistence is enabled and the data is &quot;cold&quot;.
<p>
Preload will reduce available amount of page memory for subsequent operations and may lead to earlier page
replacement.
<p>
This method is irrelevant for in-memory caches. Calling this method on an in-memory cache will result in
exception.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task PreloadPartitionAsync(int partition)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">partition</span></td>
        <td><p>Partition number.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td><p>Task.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Put_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Put*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Put__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Put(`0,`1)">Put(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Associates the specified value with the specified key in the cache.
<p>
If the cache previously contained a mapping for the key,
the old value is replaced by the specified value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void Put(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key with which the specified value is to be associated.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the specified key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_PutAll_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PutAll*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_PutAll_System_Collections_Generic_IEnumerable_System_Collections_Generic_KeyValuePair__0__1___" data-uid="Apache.Ignite.Core.Cache.ICache`2.PutAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">PutAll(IEnumerable&lt;KeyValuePair&lt;TK, TV&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Stores given key-value pairs in cache.
If write-through is enabled, the stored values will be persisted to store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
<p>Keys are locked in the order in which they are enumerated. It is caller&apos;s responsibility to
make sure keys always follow same order, such as by using <span class="xref">System.Collections.Generic.SortedDictionary`2</span>. Using unordered
dictionary, such as <span class="xref">System.Collections.Generic.Dictionary`2</span>, while calling this method in parallel <strong>will lead to deadlock</strong>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void PutAll(IEnumerable&lt;KeyValuePair&lt;TK, TV&gt;&gt; vals)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<span class="xref">System.Collections.Generic.KeyValuePair</span>&lt;TK, TV&gt;&gt;</td>
        <td><span class="parametername">vals</span></td>
        <td><p>Key-value pairs to store in cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_PutAllAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PutAllAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_PutAllAsync_System_Collections_Generic_IEnumerable_System_Collections_Generic_KeyValuePair__0__1___" data-uid="Apache.Ignite.Core.Cache.ICache`2.PutAllAsync(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">PutAllAsync(IEnumerable&lt;KeyValuePair&lt;TK, TV&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Stores given key-value pairs in cache.
If write-through is enabled, the stored values will be persisted to store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
<p>Keys are locked in the order in which they are enumerated. It is caller&apos;s responsibility to
make sure keys always follow same order, such as by using <span class="xref">System.Collections.Generic.SortedDictionary`2</span>. Using unordered
dictionary, such as <span class="xref">System.Collections.Generic.Dictionary`2</span>, while calling this method in parallel <strong>will lead to deadlock</strong>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task PutAllAsync(IEnumerable&lt;KeyValuePair&lt;TK, TV&gt;&gt; vals)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<span class="xref">System.Collections.Generic.KeyValuePair</span>&lt;TK, TV&gt;&gt;</td>
        <td><span class="parametername">vals</span></td>
        <td><p>Key-value pairs to store in cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_PutAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PutAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_PutAsync__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PutAsync(`0,`1)">PutAsync(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Associates the specified value with the specified key in the cache.
<p>
If the cache previously contained a mapping for the key,
the old value is replaced by the specified value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task PutAsync(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key with which the specified value is to be associated.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the specified key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_PutIfAbsent_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PutIfAbsent*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_PutIfAbsent__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PutIfAbsent(`0,`1)">PutIfAbsent(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Atomically associates the specified key with the given value if it is not already associated with a value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool PutIfAbsent(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key with which the specified value is to be associated.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the specified key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if a value was set.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_PutIfAbsentAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PutIfAbsentAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_PutIfAbsentAsync__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.PutIfAbsentAsync(`0,`1)">PutIfAbsentAsync(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Atomically associates the specified key with the given value if it is not already associated with a value.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;bool&gt; PutIfAbsentAsync(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key with which the specified value is to be associated.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the specified key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
        <td><p>True if a value was set.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Query_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Query*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Query_Apache_Ignite_Core_Cache_Query_QueryBase_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Query(Apache.Ignite.Core.Cache.Query.QueryBase)">Query(QueryBase)</h4>
  <div class="markdown level1 summary"><p>Queries cache.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IQueryCursor&lt;ICacheEntry&lt;TK, TV&gt;&gt; Query(QueryBase qry)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.QueryBase.html">QueryBase</a></td>
        <td><span class="parametername">qry</span></td>
        <td><p>Query.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.IQueryCursor-1.html">IQueryCursor</a>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TK, TV&gt;&gt;</td>
        <td><p>Cursor.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Query_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Query*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Query_Apache_Ignite_Core_Cache_Query_SqlFieldsQuery_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Query(Apache.Ignite.Core.Cache.Query.SqlFieldsQuery)">Query(SqlFieldsQuery)</h4>
  <div class="markdown level1 summary"><p>Queries separate entry fields.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IFieldsQueryCursor Query(SqlFieldsQuery qry)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.SqlFieldsQuery.html">SqlFieldsQuery</a></td>
        <td><span class="parametername">qry</span></td>
        <td><p>SQL fields query.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.IFieldsQueryCursor.html">IFieldsQueryCursor</a></td>
        <td><p>Cursor.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_QueryContinuous_" data-uid="Apache.Ignite.Core.Cache.ICache`2.QueryContinuous*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_QueryContinuous_Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery__0__1__" data-uid="Apache.Ignite.Core.Cache.ICache`2.QueryContinuous(Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery{`0,`1})">QueryContinuous(ContinuousQuery&lt;TK, TV&gt;)</h4>
  <div class="markdown level1 summary"><p>Start continuous query execution.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IContinuousQueryHandle QueryContinuous(ContinuousQuery&lt;TK, TV&gt; qry)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery-2.html">ContinuousQuery</a>&lt;TK, TV&gt;</td>
        <td><span class="parametername">qry</span></td>
        <td><p>Continuous query.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.IContinuousQueryHandle.html">IContinuousQueryHandle</a></td>
        <td><p>Handle to stop query execution.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_QueryContinuous_" data-uid="Apache.Ignite.Core.Cache.ICache`2.QueryContinuous*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_QueryContinuous_Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery__0__1__Apache_Ignite_Core_Cache_Query_QueryBase_" data-uid="Apache.Ignite.Core.Cache.ICache`2.QueryContinuous(Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery{`0,`1},Apache.Ignite.Core.Cache.Query.QueryBase)">QueryContinuous(ContinuousQuery&lt;TK, TV&gt;, QueryBase)</h4>
  <div class="markdown level1 summary"><p>Start continuous query execution.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IContinuousQueryHandle&lt;ICacheEntry&lt;TK, TV&gt;&gt; QueryContinuous(ContinuousQuery&lt;TK, TV&gt; qry, QueryBase initialQry)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery-2.html">ContinuousQuery</a>&lt;TK, TV&gt;</td>
        <td><span class="parametername">qry</span></td>
        <td><p>Continuous query.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.QueryBase.html">QueryBase</a></td>
        <td><span class="parametername">initialQry</span></td>
        <td><p>The initial query. This query will be executed before continuous listener is registered which allows
to iterate through entries which have already existed at the time continuous query is executed.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.IContinuousQueryHandle-1.html">IContinuousQueryHandle</a>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TK, TV&gt;&gt;</td>
        <td><p>Handle to get initial query cursor or stop query execution.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_QueryContinuous_" data-uid="Apache.Ignite.Core.Cache.ICache`2.QueryContinuous*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_QueryContinuous_Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery__0__1__Apache_Ignite_Core_Cache_Query_SqlFieldsQuery_" data-uid="Apache.Ignite.Core.Cache.ICache`2.QueryContinuous(Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery{`0,`1},Apache.Ignite.Core.Cache.Query.SqlFieldsQuery)">QueryContinuous(ContinuousQuery&lt;TK, TV&gt;, SqlFieldsQuery)</h4>
  <div class="markdown level1 summary"><p>Start continuous query execution.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IContinuousQueryHandleFields QueryContinuous(ContinuousQuery&lt;TK, TV&gt; qry, SqlFieldsQuery initialQry)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery-2.html">ContinuousQuery</a>&lt;TK, TV&gt;</td>
        <td><span class="parametername">qry</span></td>
        <td><p>Continuous query.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.SqlFieldsQuery.html">SqlFieldsQuery</a></td>
        <td><span class="parametername">initialQry</span></td>
        <td><p>The initial fields query. This query will be executed before continuous listener is registered which allows
to iterate through entries which have already existed at the time continuous query is executed.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.IContinuousQueryHandleFields.html">IContinuousQueryHandleFields</a></td>
        <td><p>Handle to get initial query cursor or stop query execution.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_QueryFields_" data-uid="Apache.Ignite.Core.Cache.ICache`2.QueryFields*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_QueryFields_Apache_Ignite_Core_Cache_Query_SqlFieldsQuery_" data-uid="Apache.Ignite.Core.Cache.ICache`2.QueryFields(Apache.Ignite.Core.Cache.Query.SqlFieldsQuery)">QueryFields(SqlFieldsQuery)</h4>
  <div class="markdown level1 summary"><p>Queries separate entry fields.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Obsolete(&quot;Use Query(SqlFieldsQuery qry) instead.&quot;)]
IQueryCursor&lt;IList&gt; QueryFields(SqlFieldsQuery qry)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.SqlFieldsQuery.html">SqlFieldsQuery</a></td>
        <td><span class="parametername">qry</span></td>
        <td><p>SQL fields query.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Query.IQueryCursor-1.html">IQueryCursor</a>&lt;<span class="xref">System.Collections.IList</span>&gt;</td>
        <td><p>Cursor.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Rebalance_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Rebalance*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Rebalance" data-uid="Apache.Ignite.Core.Cache.ICache`2.Rebalance">Rebalance()</h4>
  <div class="markdown level1 summary"><p>Rebalances cache partitions. This method is usually used when rebalanceDelay configuration parameter
has non-zero value. When many nodes are started or stopped almost concurrently,
it is more efficient to delay rebalancing until the node topology is stable to make sure that no redundant
re-partitioning happens.
<p>
In case of partitioned caches, for better efficiency user should usually make sure that new nodes get
placed on the same place of consistent hash ring as the left nodes, and that nodes are restarted before
rebalanceDelay expires.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task Rebalance()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td><p>Task that will be completed when rebalancing is finished.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Remove_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Remove*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Remove__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Remove(`0)">Remove(TK)</h4>
  <div class="markdown level1 summary"><p>Removes given key mapping from cache. If cache previously contained value for the given key,
then this value is returned. In case of PARTITIONED or REPLICATED caches, the value will be
loaded from the primary node, which in its turn may load the value from the disk-based swap
storage, and consecutively, if it&apos;s not in swap, from the underlying persistent storage.
If the returned value is not needed, method removex() should always be used instead of this
one to avoid the overhead associated with returning of the previous value.
If write-through is enabled, the value will be removed from store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool Remove(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key whose mapping is to be removed from cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>False if there was no matching key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Remove_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Remove*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Remove__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Remove(`0,`1)">Remove(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Removes given key mapping from cache if one exists and value is equal to the passed in value.
If write-through is enabled, the value will be removed from store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool Remove(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key whose mapping is to be removed from cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to match against currently cached value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if entry was removed, false otherwise.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_RemoveAll_" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAll*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_RemoveAll" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAll">RemoveAll()</h4>
  <div class="markdown level1 summary"><p>Removes all mappings from cache.
If write-through is enabled, the value will be removed from store.
This method is not transactional.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void RemoveAll()</code></pre>
  </div>
  <a id="Apache_Ignite_Core_Cache_ICache_2_RemoveAll_" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAll*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_RemoveAll_System_Collections_Generic_IEnumerable__0__" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAll(System.Collections.Generic.IEnumerable{`0})">RemoveAll(IEnumerable&lt;TK&gt;)</h4>
  <div class="markdown level1 summary"><p>Removes given key mappings from cache.
If write-through is enabled, the value will be removed from store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
<p>Keys are locked in the order in which they are enumerated. It is caller&apos;s responsibility to
make sure keys always follow same order, such as by using <span class="xref">System.Collections.Generic.SortedSet`1</span>. Using unordered
collection, such as <span class="xref">System.Collections.Generic.HashSet`1</span>, while calling this method in parallel <strong>will lead to deadlock</strong>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void RemoveAll(IEnumerable&lt;TK&gt; keys)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>Keys whose mappings are to be removed from cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_RemoveAllAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAllAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_RemoveAllAsync" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAllAsync">RemoveAllAsync()</h4>
  <div class="markdown level1 summary"><p>Removes all mappings from cache.
If write-through is enabled, the value will be removed from store.
This method is not transactional.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task RemoveAllAsync()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_RemoveAllAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAllAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_RemoveAllAsync_System_Collections_Generic_IEnumerable__0__" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAllAsync(System.Collections.Generic.IEnumerable{`0})">RemoveAllAsync(IEnumerable&lt;TK&gt;)</h4>
  <div class="markdown level1 summary"><p>Removes given key mappings from cache.
If write-through is enabled, the value will be removed from store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
<p>Keys are locked in the order in which they are enumerated. It is caller&apos;s responsibility to
make sure keys always follow same order, such as by using <span class="xref">System.Collections.Generic.SortedSet`1</span>. Using unordered
collection, such as <span class="xref">System.Collections.Generic.HashSet`1</span>, while calling this method in parallel <strong>will lead to deadlock</strong>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task RemoveAllAsync(IEnumerable&lt;TK&gt; keys)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;TK&gt;</td>
        <td><span class="parametername">keys</span></td>
        <td><p>Keys whose mappings are to be removed from cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_RemoveAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_RemoveAsync__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAsync(`0)">RemoveAsync(TK)</h4>
  <div class="markdown level1 summary"><p>Removes given key mapping from cache. If cache previously contained value for the given key,
then this value is returned. In case of PARTITIONED or REPLICATED caches, the value will be
loaded from the primary node, which in its turn may load the value from the disk-based swap
storage, and consecutively, if it&apos;s not in swap, from the underlying persistent storage.
If the returned value is not needed, method removex() should always be used instead of this
one to avoid the overhead associated with returning of the previous value.
If write-through is enabled, the value will be removed from store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;bool&gt; RemoveAsync(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key whose mapping is to be removed from cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
        <td><p>False if there was no matching key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_RemoveAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_RemoveAsync__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.RemoveAsync(`0,`1)">RemoveAsync(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Removes given key mapping from cache if one exists and value is equal to the passed in value.
If write-through is enabled, the value will be removed from store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;bool&gt; RemoveAsync(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key whose mapping is to be removed from cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to match against currently cached value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
        <td><p>True if entry was removed, false otherwise.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Replace_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Replace*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Replace__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Replace(`0,`1)">Replace(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Stores given key-value pair in cache only if there is a previous mapping for it.
If cache previously contained value for the given key, then this value is returned.
In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node,
which in its turn may load the value from the swap storage, and consecutively, if it&apos;s not
in swap, rom the underlying persistent storage.
If write-through is enabled, the stored value will be persisted to store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool Replace(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key to store in cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the given key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if the value was replaced.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_Replace_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Replace*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_Replace__0__1__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.Replace(`0,`1,`1)">Replace(TK, TV, TV)</h4>
  <div class="markdown level1 summary"><p>Stores given key-value pair in cache only if only if the previous value is equal to the
old value passed as argument.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool Replace(TK key, TV oldVal, TV newVal)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key to store in cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">oldVal</span></td>
        <td><p>Old value to match.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">newVal</span></td>
        <td><p>Value to be associated with the given key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>True if replace happened, false otherwise.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ReplaceAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ReplaceAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ReplaceAsync__0__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ReplaceAsync(`0,`1)">ReplaceAsync(TK, TV)</h4>
  <div class="markdown level1 summary"><p>Stores given key-value pair in cache only if there is a previous mapping for it.
If cache previously contained value for the given key, then this value is returned.
In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node,
which in its turn may load the value from the swap storage, and consecutively, if it&apos;s not
in swap, rom the underlying persistent storage.
If write-through is enabled, the stored value will be persisted to store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;bool&gt; ReplaceAsync(TK key, TV val)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key to store in cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">val</span></td>
        <td><p>Value to be associated with the given key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
        <td><p>True if the value was replaced.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ReplaceAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ReplaceAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ReplaceAsync__0__1__1_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ReplaceAsync(`0,`1,`1)">ReplaceAsync(TK, TV, TV)</h4>
  <div class="markdown level1 summary"><p>Stores given key-value pair in cache only if only if the previous value is equal to the
old value passed as argument.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;bool&gt; ReplaceAsync(TK key, TV oldVal, TV newVal)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key to store in cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">oldVal</span></td>
        <td><p>Old value to match.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">newVal</span></td>
        <td><p>Value to be associated with the given key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
        <td><p>True if replace happened, false otherwise.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_ResetQueryMetrics_" data-uid="Apache.Ignite.Core.Cache.ICache`2.ResetQueryMetrics*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_ResetQueryMetrics" data-uid="Apache.Ignite.Core.Cache.ICache`2.ResetQueryMetrics">ResetQueryMetrics()</h4>
  <div class="markdown level1 summary"><p>Reset query metrics.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void ResetQueryMetrics()</code></pre>
  </div>
  <a id="Apache_Ignite_Core_Cache_ICache_2_TryGet_" data-uid="Apache.Ignite.Core.Cache.ICache`2.TryGet*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_TryGet__0__1__" data-uid="Apache.Ignite.Core.Cache.ICache`2.TryGet(`0,`1@)">TryGet(TK, out TV)</h4>
  <div class="markdown level1 summary"><p>Retrieves value mapped to the specified key from cache.
If the value is not present in cache, then it will be looked up from swap storage. If
it&apos;s not present in swap, or if swap is disable, and if read-through is allowed, value
will be loaded from persistent store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool TryGet(TK key, out TV value)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">value</span></td>
        <td><p>When this method returns, the value associated with the specified key,
if the key is found; otherwise, the default value for the type of the value parameter.
This parameter is passed uninitialized.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>true if the cache contains an element with the specified key; otherwise, false.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_TryGetAsync_" data-uid="Apache.Ignite.Core.Cache.ICache`2.TryGetAsync*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_TryGetAsync__0_" data-uid="Apache.Ignite.Core.Cache.ICache`2.TryGetAsync(`0)">TryGetAsync(TK)</h4>
  <div class="markdown level1 summary"><p>Retrieves value mapped to the specified key from cache.
If the value is not present in cache, then it will be looked up from swap storage. If
it&apos;s not present in swap, or if swap is disable, and if read-through is allowed, value
will be loaded from persistent store.
This method is transactional and will enlist the entry into ongoing transaction if there is one.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;CacheResult&lt;TV&gt;&gt; TryGetAsync(TK key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Threading.Tasks.Task</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.CacheResult-1.html">CacheResult</a>&lt;TV&gt;&gt;</td>
        <td><p><a class="xref" href="Apache.Ignite.Core.Cache.CacheResult-1.html">CacheResult&lt;T&gt;</a> containing a bool success flag and a value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_TryLocalPeek_" data-uid="Apache.Ignite.Core.Cache.ICache`2.TryLocalPeek*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_TryLocalPeek__0__1__Apache_Ignite_Core_Cache_CachePeekMode___" data-uid="Apache.Ignite.Core.Cache.ICache`2.TryLocalPeek(`0,`1@,Apache.Ignite.Core.Cache.CachePeekMode[])">TryLocalPeek(TK, out TV, CachePeekMode[])</h4>
  <div class="markdown level1 summary"><p>Peeks at cached value using optional set of peek modes. This method will sequentially
iterate over given peek modes, and try to peek at value using each peek mode. Once a
non-null value is found, it will be immediately returned.
This method does not participate in any transactions, however, it may peek at transactional
value depending on the peek modes used.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool TryLocalPeek(TK key, out TV value, params CachePeekMode[] modes)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">TK</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">TV</span></td>
        <td><span class="parametername">value</span></td>
        <td><p>When this method returns, the value associated with the specified key,
if the key is found; otherwise, the default value for the type of the value parameter.
This parameter is passed uninitialized.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.CachePeekMode.html">CachePeekMode</a>[]</td>
        <td><span class="parametername">modes</span></td>
        <td><p>Peek modes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p>true if the cache contains an element with the specified key; otherwise, false.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_WithAllowAtomicOpsInTx_" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithAllowAtomicOpsInTx*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_WithAllowAtomicOpsInTx" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithAllowAtomicOpsInTx">WithAllowAtomicOpsInTx()</h4>
  <div class="markdown level1 summary"><p>Get another cache instance with operations allowed in transactions.
Only atomic caches need this. Transactional caches already available for transactions.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Obsolete(&quot;Not supported, will be removed in future releases.&quot;)]
ICache&lt;TK, TV&gt; WithAllowAtomicOpsInTx()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html">ICache</a>&lt;TK, TV&gt;</td>
        <td><p>Cache allowed to use in transactions.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_WithExpiryPolicy_" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithExpiryPolicy*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_WithExpiryPolicy_Apache_Ignite_Core_Cache_Expiry_IExpiryPolicy_" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithExpiryPolicy(Apache.Ignite.Core.Cache.Expiry.IExpiryPolicy)">WithExpiryPolicy(IExpiryPolicy)</h4>
  <div class="markdown level1 summary"><p>Returns cache with the specified expired policy set. This policy will be used for each operation
invoked on the returned cache.
<p>
Expiry durations for each operation are calculated only once and then used as constants. Please
consider this when implementing custom expiry policy implementations.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICache&lt;TK, TV&gt; WithExpiryPolicy(IExpiryPolicy plc)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Expiry.IExpiryPolicy.html">IExpiryPolicy</a></td>
        <td><span class="parametername">plc</span></td>
        <td><p>Expiry policy to use.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html">ICache</a>&lt;TK, TV&gt;</td>
        <td><p>Cache instance with the specified expiry policy set.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_WithKeepBinary_" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithKeepBinary*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_WithKeepBinary__2" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithKeepBinary``2">WithKeepBinary&lt;TK1, TV1&gt;()</h4>
  <div class="markdown level1 summary"><p>Gets cache with KeepBinary mode enabled, changing key and/or value types if necessary.
You can only change key/value types when transitioning from non-binary to binary cache;
Changing type of binary cache is not allowed and will throw an <span class="xref">System.InvalidOperationException</span></p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICache&lt;TK1, TV1&gt; WithKeepBinary&lt;TK1, TV1&gt;()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html">ICache</a>&lt;TK1, TV1&gt;</td>
        <td><p>Cache instance with binary mode enabled.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TK1</span></td>
        <td><p>Key type in binary mode.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TV1</span></td>
        <td><p>Value type in binary mode.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_WithNoRetries_" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithNoRetries*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_WithNoRetries" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithNoRetries">WithNoRetries()</h4>
  <div class="markdown level1 summary"><p>Get another cache instance with no-retries behavior enabled.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICache&lt;TK, TV&gt; WithNoRetries()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html">ICache</a>&lt;TK, TV&gt;</td>
        <td><p>Cache with no-retries behavior enabled.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_WithPartitionRecover_" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithPartitionRecover*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_WithPartitionRecover" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithPartitionRecover">WithPartitionRecover()</h4>
  <div class="markdown level1 summary"><p>Gets an instance of cache that will be allowed to execute cache operations (read, write)
regardless of partition loss policy.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICache&lt;TK, TV&gt; WithPartitionRecover()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html">ICache</a>&lt;TK, TV&gt;</td>
        <td><p>Cache without partition loss protection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_ICache_2_WithSkipStore_" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithSkipStore*"></a>
  <h4 id="Apache_Ignite_Core_Cache_ICache_2_WithSkipStore" data-uid="Apache.Ignite.Core.Cache.ICache`2.WithSkipStore">WithSkipStore()</h4>
  <div class="markdown level1 summary"><p>Get another cache instance with read-through and write-through behavior disabled.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICache&lt;TK, TV&gt; WithSkipStore()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html">ICache</a>&lt;TK, TV&gt;</td>
        <td><p>Cache with read-through and write-through behavior disabled.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="extensionmethods">Extension Methods</h3>
  <div>
      <a class="xref" href="Apache.Ignite.Linq.CacheLinqExtensions.html#Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Cache_ICache___0___1__">CacheLinqExtensions.AsCacheQueryable&lt;TKey, TValue&gt;(ICache&lt;TKey, TValue&gt;)</a>
  </div>
  <div>
      <a class="xref" href="Apache.Ignite.Linq.CacheLinqExtensions.html#Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Cache_ICache___0___1__System_Boolean_">CacheLinqExtensions.AsCacheQueryable&lt;TKey, TValue&gt;(ICache&lt;TKey, TValue&gt;, Boolean)</a>
  </div>
  <div>
      <a class="xref" href="Apache.Ignite.Linq.CacheLinqExtensions.html#Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Cache_ICache___0___1__System_Boolean_System_String_">CacheLinqExtensions.AsCacheQueryable&lt;TKey, TValue&gt;(ICache&lt;TKey, TValue&gt;, Boolean, String)</a>
  </div>
  <div>
      <a class="xref" href="Apache.Ignite.Linq.CacheLinqExtensions.html#Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Cache_ICache___0___1__Apache_Ignite_Linq_QueryOptions_">CacheLinqExtensions.AsCacheQueryable&lt;TKey, TValue&gt;(ICache&lt;TKey, TValue&gt;, QueryOptions)</a>
  </div>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            © 2015 - 2019 The Apache Software Foundation
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
