Files
Misaki.HighPerformance/docfx/_site/api/Misaki.HighPerformance.Utilities.CollectionUtility.html

379 lines
14 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class CollectionUtility | Misaki.HighPerformance </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class CollectionUtility | Misaki.HighPerformance ">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="Misaki.HighPerformance">
Misaki.HighPerformance
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Misaki.HighPerformance.Utilities.CollectionUtility">
<h1 id="Misaki_HighPerformance_Utilities_CollectionUtility" data-uid="Misaki.HighPerformance.Utilities.CollectionUtility" class="text-break">
Class CollectionUtility
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Misaki.html">Misaki</a>.<a class="xref" href="Misaki.HighPerformance.html">HighPerformance</a>.<a class="xref" href="Misaki.HighPerformance.Utilities.html">Utilities</a></dd></dl>
<dl><dt>Assembly</dt><dd>Misaki.HighPerformance.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class CollectionUtility</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">CollectionUtility</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Misaki_HighPerformance_Utilities_CollectionUtility_AsSpan_" data-uid="Misaki.HighPerformance.Utilities.CollectionUtility.AsSpan*"></a>
<h3 id="Misaki_HighPerformance_Utilities_CollectionUtility_AsSpan__1_System_Collections_Generic_List___0__" data-uid="Misaki.HighPerformance.Utilities.CollectionUtility.AsSpan``1(System.Collections.Generic.List{``0})">
AsSpan&lt;T&gt;(List&lt;T&gt;?)
</h3>
<div class="markdown level1 summary"><p>Creates a span over the elements of the specified list.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Span&lt;T&gt; AsSpan&lt;T&gt;(this List&lt;T&gt;? list)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>list</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;T&gt;</dt>
<dd><p>The list whose elements the span will cover. Can be null.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.span-1">Span</a>&lt;T&gt;</dt>
<dd><p>A span over the elements of the list, or an empty span if the list is null or empty.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of elements in the list.</p>
</dd>
</dl>
<h4 class="section" id="Misaki_HighPerformance_Utilities_CollectionUtility_AsSpan__1_System_Collections_Generic_List___0___remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>The span will become invalid if the list is modified (e.g., elements are added or removed).</p>
</div>
<a id="Misaki_HighPerformance_Utilities_CollectionUtility_GetElementUnsafe_" data-uid="Misaki.HighPerformance.Utilities.CollectionUtility.GetElementUnsafe*"></a>
<h3 id="Misaki_HighPerformance_Utilities_CollectionUtility_GetElementUnsafe__1_System_ReadOnlySpan___0__System_Int32_" data-uid="Misaki.HighPerformance.Utilities.CollectionUtility.GetElementUnsafe``1(System.ReadOnlySpan{``0},System.Int32)">
GetElementUnsafe&lt;T&gt;(ReadOnlySpan&lt;T&gt;, int)
</h3>
<div class="markdown level1 summary"><p>Returns a read-only reference to the element at the specified index within the given span without performing bounds checking.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static ref readonly T GetElementUnsafe&lt;T&gt;(this ReadOnlySpan&lt;T&gt; span, int index)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>span</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.readonlyspan-1">ReadOnlySpan</a>&lt;T&gt;</dt>
<dd><p>The read-only span from which to retrieve the element.</p>
</dd>
<dt><code>index</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The zero-based index of the element to retrieve.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>A read-only reference to the element at the specified index in the span.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of elements contained in the span.</p>
</dd>
</dl>
<a id="Misaki_HighPerformance_Utilities_CollectionUtility_GetElementUnsafe_" data-uid="Misaki.HighPerformance.Utilities.CollectionUtility.GetElementUnsafe*"></a>
<h3 id="Misaki_HighPerformance_Utilities_CollectionUtility_GetElementUnsafe__1_System_Span___0__System_Int32_" data-uid="Misaki.HighPerformance.Utilities.CollectionUtility.GetElementUnsafe``1(System.Span{``0},System.Int32)">
GetElementUnsafe&lt;T&gt;(Span&lt;T&gt;, int)
</h3>
<div class="markdown level1 summary"><p>Returns a reference to the element at the specified index within the given span without performing bounds checking.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static ref T GetElementUnsafe&lt;T&gt;(this Span&lt;T&gt; span, int index)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>span</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.span-1">Span</a>&lt;T&gt;</dt>
<dd><p>The span from which to retrieve the element.</p>
</dd>
<dt><code>index</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The zero-based index of the element to retrieve.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>A reference to the element at the specified index in the span.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of elements contained in the span.</p>
</dd>
</dl>
<a id="Misaki_HighPerformance_Utilities_CollectionUtility_RemoveAndSwapBack_" data-uid="Misaki.HighPerformance.Utilities.CollectionUtility.RemoveAndSwapBack*"></a>
<h3 id="Misaki_HighPerformance_Utilities_CollectionUtility_RemoveAndSwapBack__1_System_Collections_Generic_List___0__System_Int32_" data-uid="Misaki.HighPerformance.Utilities.CollectionUtility.RemoveAndSwapBack``1(System.Collections.Generic.List{``0},System.Int32)">
RemoveAndSwapBack&lt;T&gt;(List&lt;T&gt;, int)
</h3>
<div class="markdown level1 summary"><p>Removes the element at the specified index from the list by replacing it with the last element, then removing
the last element. This operation does not preserve the order of elements.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool RemoveAndSwapBack&lt;T&gt;(this List&lt;T&gt; list, int index)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>list</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;T&gt;</dt>
<dd><p>The list from which to remove the element. Cannot be null.</p>
</dd>
<dt><code>index</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The zero-based index of the element to remove. Must be within the bounds of the list.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>True if the element was successfully removed; otherwise, false.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of elements in the list.</p>
</dd>
</dl>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.argumentoutofrangeexception">ArgumentOutOfRangeException</a></dt>
<dd><p>Thrown if index is less than 0 or greater than or equal to the number of elements in the list.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>