<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arrays &#8211; Xojo Programming Blog</title>
	<atom:link href="https://blog.xojo.com/tag/arrays/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.xojo.com</link>
	<description>Blog about the Xojo programming language and IDE</description>
	<lastBuildDate>Tue, 05 May 2026 18:15:22 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Guide to Constructing and Reading JSON</title>
		<link>https://blog.xojo.com/2026/05/06/guide-to-constructing-and-reading-json/</link>
		
		<dc:creator><![CDATA[Gabriel Ludosanu]]></dc:creator>
		<pubDate>Wed, 06 May 2026 15:55:00 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Arrays]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[JSONItem]]></category>
		<category><![CDATA[Lookup]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=16235</guid>

					<description><![CDATA[JSONItem is the native class for dealing with JSON. Depending on how you use it, it treats your data as either a standard dictionary (key-value pairs)&#8230;]]></description>
										<content:encoded><![CDATA[
<p><code>JSONItem</code> is the native class for dealing with JSON. Depending on how you use it, it treats your data as either a standard dictionary (key-value pairs) or a zero-indexed array.</p>



<h2 class="wp-block-heading" id="part-1-building-json">Part 1: Building JSON</h2>



<p>Building JSON from scratch means firing up a new&nbsp;<code>JSONItem</code>&nbsp;and throwing data at it. Don’t build JSON by stitching strings together. It breaks easily, you&#8217;ll mess up the escaping, and&nbsp;<code>JSONItem</code>&nbsp;makes it completely unnecessary.</p>



<h3 class="wp-block-heading" id="the-basic-payload">The Basic Payload</h3>



<p>When you just need to fire a flat object at a web service:</p>



<pre class="wp-block-code"><code>Var apiPayload As New JSONItem
apiPayload.Value("endpoint") = "/users/create"
apiPayload.Value("timestamp") = 1715423000
apiPayload.Value("forceSync") = True

// Get the string back
Var jsonString As String = apiPayload.ToString
// {"endpoint":"/users/create","timestamp":1715423000,"forceSync":true}</code></pre>



<h3 class="wp-block-heading" id="making-arrays">Making Arrays</h3>



<p>If you&#8217;re making a list of tags or IDs, use the <code>.Add</code> method. The moment you call <code>.Add</code>, Xojo treats that <code>JSONItem</code> as a JSON array under the hood.</p>



<pre class="wp-block-code"><code>Var tags As New JSONItem
tags.Add("xojo")
tags.Add("desktop")
tags.Add("api")

Var jsonString As String = tags.ToString
// &#91;"xojo","desktop","api"]</code></pre>



<h3 class="wp-block-heading" id="nesting-things">Nesting Things</h3>



<p>Most APIs want nested payloads. You map this out by making separate&nbsp;<code>JSONItem</code>&nbsp;objects and attaching them to each other.</p>



<pre class="wp-block-code"><code>Var payload As New JSONItem
payload.Value("status") = "active"

Var user As New JSONItem
user.Value("id") = 982
user.Value("username") = "johndoe"

Var roles As New JSONItem
roles.Add("admin")
roles.Add("editor")

user.Value("roles") = roles // Attach the array to the user object
payload.Value("data") = user // Attach the user object to the main payload

Var jsonString As String = payload.ToString
// {"status":"active","data":{"id":982,"username":"johndoe","roles":&#91;"admin","editor"]}}</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="part-2-parsing-json">Part 2: Parsing JSON</h2>



<p>To go the other direction, pass a raw JSON string straight into the constructor.</p>



<h3 class="wp-block-heading" id="reading-a-flat-response">Reading a Flat Response</h3>



<p>When a server hands you back a flat config or auth token, just pull the values right out.</p>



<pre class="wp-block-code"><code>Var rawJSON As String = "{""token"":""abc123xyz"",""expiresIn"":3600,""active"":true}"
Var response As New JSONItem(rawJSON)

Var token As String = response.Value("token")
Var expiresIn As Integer = response.Value("expiresIn")
Var isActive As Boolean = response.Value("active")</code></pre>



<h3 class="wp-block-heading" id="handling-optional-keys-with-lookup">Handling Optional Keys with Lookup</h3>



<p>If you use&nbsp;<code>.Value("key")</code>&nbsp;and the key isn&#8217;t in the JSON, Xojo throws a&nbsp;<code>KeyNotFoundException</code>. Instead of writing boilerplate&nbsp;<code>If response.HasKey("key") Then</code>&nbsp;checks everywhere, use&nbsp;<code>.Lookup()</code>. It lets you define a fallback value in line.</p>



<pre class="wp-block-code"><code>Var rawJSON As String = "{""username"":""johndoe""}"
Var response As New JSONItem(rawJSON)

// Returns "johndoe" because the key is present
Var user As String = response.Lookup("username", "anonymous") 

// Returns False because "forceSync" is missing from the JSON
Var isSyncForced As Boolean = response.Lookup("forceSync", False) </code></pre>



<h3 class="wp-block-heading" id="looping-over-an-array">Looping Over an Array</h3>



<p>If an API hands you a list of database records:</p>



<pre class="wp-block-code"><code>Var rawJSON As String = "&#91;{""id"":1, ""name"":""Alice""}, {""id"":2, ""name"":""Bob""}]"
Var userList As New JSONItem(rawJSON)

For i As Integer = 0 To userList.Count - 1
  Var currentUser As JSONItem = userList.ValueAt(i)

  Var id As Integer = currentUser.Value("id")
  Var name As String = currentUser.Value("name")

  System.DebugLog(id.ToString + ": " + name)
Next</code></pre>



<h3 class="wp-block-heading" id="digging-out-nested-nodes">Digging out Nested Nodes</h3>



<p>This is where&nbsp;<code>.Child()</code>&nbsp;comes in handy. While&nbsp;<code>.Value()</code>&nbsp;returns a generic&nbsp;<code>Variant</code>&nbsp;(which you can&#8217;t chain directly),&nbsp;<code>.Child("key")</code>&nbsp;explicitly returns the nested object as a&nbsp;<code>JSONItem</code>. This allows for perfectly clean chaining.</p>



<pre class="wp-block-code"><code>Var rawJSON As String = "{""weather"":{""current"":{""temp"":22, ""condition"":""Sunny""}}}"
Var forecast As New JSONItem(rawJSON)

// Use .Child() to tunnel down into objects, then .Value() to pull the final primitive data 
Var temperature As Double = forecast.Child("weather").Child("current").Value("temp")
Var condition As String = forecast.Child("weather").Child("current").Value("condition")</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="part-3-identifying-the-structure">Part 3: Identifying the Structure</h2>



<p>APIs are notoriously inconsistent. Check the&nbsp;<code>.IsArray</code>&nbsp;property to figure out what structure you&#8217;re dealing with before parsing it, so your loops don&#8217;t crash when passing something unexpected.</p>



<pre class="wp-block-code"><code>Var rawJSON As String = "&#91;""apple"", ""banana"", ""orange""]"
Var parsedData As New JSONItem(rawJSON)

If parsedData.IsArray Then
  System.DebugLog("Looks like an array with " + parsedData.Count.ToString + " items.")

  For i As Integer = 0 To parsedData.Count - 1
    System.DebugLog(parsedData.ValueAt(i).StringValue)
  Next
Else
  System.DebugLog("It's a standard dictionary.")
  If parsedData.HasKey("data") Then
    System.DebugLog(parsedData.Value("data").StringValue)
  End If
End If</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>That&#8217;s it. For more info on JSONItem, don&#8217;t forget to check the online documentation at: <a href="https://documentation.xojo.com/api/text/json/jsonitem.html" target="_blank" rel="noreferrer noopener">https://documentation.xojo.com/api/text/json/jsonitem.html</a></p>



<p><em>Gabriel is a digital marketing enthusiast who loves coding with Xojo to create cool software tools for any platform. He is always eager to learn and share new ideas!</em></p>



<ul class="wp-block-social-links has-normal-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-16018d1d wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/goxojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://x.com/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li>

<li class="wp-social-link wp-social-link-github  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://github.com/topics/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label screen-reader-text">GitHub</span></a></li>

<li class="wp-social-link wp-social-link-youtube  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/c/XojoInc" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Pair vs. Arrays and Dictionaries: Choosing the Right Tool For The Job</title>
		<link>https://blog.xojo.com/2024/10/24/pair-vs-arrays-and-dictionaries-choosing-the-right-tool-for-the-job/</link>
		
		<dc:creator><![CDATA[Gabriel Ludosanu]]></dc:creator>
		<pubDate>Thu, 24 Oct 2024 15:45:00 +0000</pubDate>
				<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Array]]></category>
		<category><![CDATA[Arrays]]></category>
		<category><![CDATA[Coding Best Practices]]></category>
		<category><![CDATA[Data Management]]></category>
		<category><![CDATA[Development Tips]]></category>
		<category><![CDATA[Dictionaries]]></category>
		<category><![CDATA[Dictionary]]></category>
		<category><![CDATA[Pair]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=13922</guid>

					<description><![CDATA[As developers, we are continuously seeking more refined and effective methods of data management for our apps. Although Arrays and Dictionaries receive the most attention,&#8230;]]></description>
										<content:encoded><![CDATA[
<p>As developers, we are continuously seeking more refined and effective methods of data management for our apps. Although <code>Arrays</code> and <code>Dictionaries</code> receive the most attention, there is another class, <code>Pair</code>, that is underutilized yet has great potential in certain contexts.</p>



<p>This article will cover the <code>Pair </code>class, highlight its strengths, compare it with <code>Arrays</code> and <code>Dictionaries</code>, and assist you in identifying the most suitable tool for your needs.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="what-is-the-pair-class">What is the Pair Class?</h2>



<p>In Xojo, the <code>Pair</code> class is a basic structure that stores two associated values: <code>Left </code>and <code>Right</code>. These properties can be of any data type, allowing you to pair together any two pieces of data.</p>



<pre class="wp-block-code"><code>Var myPair As New Pair("Pie", 15)
// or
Var myPair As Pair = "Pie" : 15</code></pre>



<p>In the example above, <code>myPair.Left</code> is <code>"Pie"</code> (a <code>String</code>), and <code>myPair.Right</code> is <code>15</code> (an <code>Integer</code>). The <code>Pair</code> class is especially handy when you need to associate two pieces of data without the overhead of creating a dedicated class or structure.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="scenarios-where-pair-excels">Advantages of Using the Pair Class</h2>



<p></p>



<h3 class="wp-block-heading" id="1-returning-multiple-values-from-a-method">1. Returning Multiple Values from a Method</h3>



<p>Sometimes, you need a method to return more than one value. While you could use <code>ByRef</code> parameters or create a custom class, using a <code>Pair</code> provides a quick and clean solution.</p>



<p><strong>Example:</strong></p>



<pre class="wp-block-code"><code>Public Function GetMinMax(values() As Integer) As Pair
  Var minValue As Integer = values(0)
  Var maxValue As Integer = values(0)
  
  For Each value As Integer In values
    If value &lt; minValue Then minValue = value
    If value &gt; maxValue Then maxValue = value
  Next
  
  Return New Pair(minValue, maxValue)
End Function

// Usage
Var numbers() As Integer = Array(5, 2, 8, 3, 9)
Var result As Pair = GetMinMax(numbers)
MessageBox("Min: " + result.Left.StringValue + ", Max: " + result.Right.StringValue)
</code></pre>



<h3 class="wp-block-heading" id="2-associating-related-data-temporarily">2. Associating Related Data Temporarily</h3>



<p>When processing data, you might need to temporarily associate two values without persisting them or creating a complex data structure.</p>



<p><strong>Example:</strong></p>



<pre class="wp-block-code"><code>Var people() As Pair
people.Append(New Pair("Alice", 30))
people.Append(New Pair("Bob", 25))
people.Append(New Pair("Charlie", 35))

For Each person As Pair In people
  MessageBox(person.Left.StringValue + " is " + person.Right.IntegerValue.ToString + " years old.")
Next
</code></pre>



<h3 class="wp-block-heading" id="3-key-value-pair-entries">3. Representation of Key-Value Pairs</h3>



<p>While Dictionaries are designed for key-value storage, sometimes you might need to represent key-value pairs explicitly, such as when iterating over a Dictionary&#8217;s entries.</p>



<p><strong>Example:</strong></p>



<pre class="wp-block-code"><code>Var dict As New Dictionary
dict.Value("Red") = "#FF0000"
dict.Value("Green") = "#00FF00"
dict.Value("Blue") = "#0000FF"

For Each key As Variant In dict.Keys
  Var entry As New Pair(key, dict.Value(key))
  MessageBox(entry.Left.StringValue + " color code is " + entry.Right.StringValue)
Next
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="pair-vs-arrays-vs-dictionaries">Comparison: Pair vs. Arrays vs. Dictionaries</h2>



<p>Understanding when to use the <code>Pair</code> class over <code>Arrays</code> or <code>Dictionaries</code> is crucial for writing efficient code.</p>



<h3 class="wp-block-heading" id="pair">Pair</h3>



<ul class="wp-block-list">
<li><strong>Structure:</strong> Holds exactly two related values (<code>Left</code> and <code>Right</code>).</li>



<li><strong>Type Safety:</strong> Both <code>Left</code> and <code>Right</code> can be any data type.</li>



<li><strong>Usage:</strong> Ideal for associating two pieces of data temporarily or for methods that need to return two values.</li>



<li><strong>Performance:</strong> Lightweight and minimal overhead.</li>
</ul>



<h3 class="wp-block-heading" id="arrays">Arrays</h3>



<ul class="wp-block-list">
<li><strong>Structure:</strong> Ordered collection of elements, accessible by index.</li>



<li><strong>Type Safety:</strong> Elements are of the same data type (unless you use <code>Variant</code> arrays).</li>



<li><strong>Usage:</strong> Best when dealing with lists of items where order matters.</li>



<li><strong>Performance:</strong> Efficient for iterating over large collections.</li>
</ul>



<h3 class="wp-block-heading" id="dictionaries">Dictionaries</h3>



<ul class="wp-block-list">
<li><strong>Structure:</strong> Collection of key-value pairs, with unique keys.</li>



<li><strong>Type Safety:</strong> Keys are typically <code>String</code> or <code>Integer</code>, values can be any data type.</li>



<li><strong>Usage:</strong> When you need fast lookup of values by keys.</li>



<li><strong>Performance:</strong> Optimized for key-based access; overhead of hash table management.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="when-to-choose-pair-over-arrays-or-dictionaries">Considerations for Using Pair Instead of Arrays or Dictionaries</h2>



<ul class="wp-block-list">
<li><strong>Simplicity:</strong> When you need to associate two items without creating a complex structure.</li>



<li><strong>Temporary Associations:</strong> For short-lived pairings within methods or loops.</li>



<li><strong>Returning Multiple Values:</strong> When methods need to return two related results.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="best-practices-with-pair">Best Practices with Pair</h2>



<ul class="wp-block-list">
<li><strong>Immutable Data:</strong> Since <code>Pair</code> is a class, be cautious when modifying <code>Left</code> or <code>Right</code> properties, especially if the <code>Pair</code> is shared among different parts of your code.</li>



<li><strong>Descriptive Code:</strong> Use comments or naming conventions to clarify what <code>Left</code> and <code>Right</code> represent, as they do not provide semantic meaning on their own.</li>
</ul>



<p><strong>Example:</strong></p>



<pre class="wp-block-code"><code>// Pair: Left = Product Name, Right = Price
Var productPair As New Pair("Laptop", 999.99)</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="limitations-of-pair">Drawbacks and Constraints of the Pair Class</h2>



<ul class="wp-block-list">
<li><strong>Lack of Clarity:</strong> Unlike custom classes or structures, <code>Pair</code> does not convey the meaning of its contents through property names.</li>



<li><strong>Fixed Size:</strong> Limited to exactly two items; for more complex data, consider using a class or structure.</li>



<li><strong>Reference Type:</strong> Being a class, <code>Pair</code> is a reference type, which can have implications for memory management and threading.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="conclusion">Conclusion</h2>



<p>The <code>Pair</code> class is a handy tool that can simplify your code when you need to associate two related values. While it doesn&#8217;t replace <code>Arrays</code> or <code>Dictionaries</code>, the <code>Pair</code> class is valuable in particular situations that prioritize simplicity and efficiency.</p>



<p><strong>Resources</strong>:</p>



<ul class="wp-block-list">
<li>Learn more about <a href="https://documentation.xojo.com/api/language/pair.html" data-type="link" data-id="https://documentation.xojo.com/api/language/pair.html" target="_blank" rel="noreferrer noopener">Pair</a></li>



<li>Learn more about <a href="https://documentation.xojo.com/api/language/arrays.html" data-type="link" data-id="https://documentation.xojo.com/api/language/arrays.html">Arrays</a></li>



<li>Learn more about <a href="https://documentation.xojo.com/api/language/dictionary.html" data-type="link" data-id="https://documentation.xojo.com/api/language/dictionary.html">Dictionary</a></li>
</ul>



<p><em>Gabriel is a digital marketing enthusiast who loves coding with Xojo to create cool software tools for any platform. He is always eager to learn and share new ideas!</em></p>



<ul class="wp-block-social-links has-normal-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-16018d1d wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/goxojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://x.com/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li>

<li class="wp-social-link wp-social-link-github  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://github.com/topics/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label screen-reader-text">GitHub</span></a></li>

<li class="wp-social-link wp-social-link-youtube  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/c/XojoInc" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li></ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
