<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How do you serialize the selection state of Features in a FeatureLayer? in .NET Maps SDK Questions</title>
    <link>https://community.esri.com/t5/net-maps-sdk-questions/how-do-you-serialize-the-selection-state-of/m-p/1713993#M13968</link>
    <description>&lt;P&gt;&lt;SPAN class=""&gt;I&lt;/SPAN&gt; &lt;SPAN class=""&gt;think&lt;/SPAN&gt; &lt;SPAN class=""&gt;your&lt;/SPAN&gt; &lt;SPAN class=""&gt;overall&lt;/SPAN&gt; &lt;SPAN class=""&gt;approach&lt;/SPAN&gt; &lt;SPAN class=""&gt;is&lt;/SPAN&gt; &lt;SPAN class=""&gt;reasonable,&lt;/SPAN&gt; &lt;SPAN class=""&gt;but&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;may&lt;/SPAN&gt; &lt;SPAN class=""&gt;be&lt;/SPAN&gt; &lt;SPAN class=""&gt;able&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;simplify&lt;/SPAN&gt; &lt;SPAN class=""&gt;it.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;Rather&lt;/SPAN&gt; &lt;SPAN class=""&gt;than&lt;/SPAN&gt; &lt;SPAN class=""&gt;special-casing&lt;/SPAN&gt; &lt;SPAN class=""&gt;ArcGISFeatureTable&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;shapefiles,&lt;/SPAN&gt; &lt;SPAN class=""&gt;GeoPackages,&lt;/SPAN&gt; &lt;SPAN class=""&gt;etc.,&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;can&lt;/SPAN&gt; &lt;SPAN class=""&gt;determine&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;ObjectID&lt;/SPAN&gt; &lt;SPAN class=""&gt;field&lt;/SPAN&gt; &lt;SPAN class=""&gt;from&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;table&lt;/SPAN&gt; &lt;SPAN class=""&gt;schema, t&lt;SPAN class=""&gt;hen&lt;/SPAN&gt; &lt;SPAN class=""&gt;serialize&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; ObjectIDs of the selected features:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;LI-CODE lang="csharp"&gt;var objectIdField = featureTable.Fields.FirstOrDefault(f =&amp;gt; f.FieldType == FieldType.OID);
long objectId = Convert.ToInt64(feature.GetAttributeValue(objectIdField.Name));&lt;/LI-CODE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN class=""&gt;To&lt;/SPAN&gt; &lt;SPAN class=""&gt;restore&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;selection,&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;could&lt;/SPAN&gt; &lt;SPAN class=""&gt;persist&lt;/SPAN&gt; &lt;SPAN class=""&gt;a&lt;/SPAN&gt; &lt;SPAN class=""&gt;mapping&lt;/SPAN&gt; &lt;SPAN class=""&gt;of&lt;/SPAN&gt; &lt;SPAN class=""&gt;FeatureTable.TableName&lt;/SPAN&gt; &lt;SPAN class=""&gt;(assuming&lt;/SPAN&gt; &lt;SPAN class=""&gt;it&lt;/SPAN&gt; &lt;SPAN class=""&gt;is&lt;/SPAN&gt; &lt;SPAN class=""&gt;unique&lt;/SPAN&gt; &lt;SPAN class=""&gt;in&lt;/SPAN&gt; &lt;SPAN class=""&gt;your&lt;/SPAN&gt; &lt;SPAN class=""&gt;application)&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;a&lt;/SPAN&gt; &lt;SPAN class=""&gt;list&lt;/SPAN&gt; &lt;SPAN class=""&gt;of&lt;/SPAN&gt; &lt;SPAN class=""&gt;selected&lt;/SPAN&gt; &lt;SPAN class=""&gt;ObjectIDs&lt;/SPAN&gt; &lt;SPAN class=""&gt;obtained&lt;/SPAN&gt; &lt;SPAN class=""&gt;from&lt;/SPAN&gt; &lt;SPAN class=""&gt;FeatureLayer.GetSelectedFeaturesAsync()&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt; &lt;SPAN class=""&gt;On&lt;/SPAN&gt; &lt;SPAN class=""&gt;reload,&lt;/SPAN&gt; &lt;SPAN class=""&gt;populate&lt;/SPAN&gt; &lt;SPAN class=""&gt;QueryParameters.ObjectIds&lt;/SPAN&gt; &lt;SPAN class=""&gt;with&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;saved&lt;/SPAN&gt; &lt;SPAN class=""&gt;IDs,&lt;/SPAN&gt; &lt;SPAN class=""&gt;query&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;matching&lt;/SPAN&gt; &lt;SPAN class=""&gt;features,&lt;/SPAN&gt; &lt;SPAN class=""&gt;and&lt;/SPAN&gt; &lt;SPAN class=""&gt;select&lt;/SPAN&gt; &lt;SPAN class=""&gt;them&lt;/SPAN&gt; &lt;SPAN class=""&gt;on&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;layer.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;This&lt;/SPAN&gt; &lt;SPAN class=""&gt;has&lt;/SPAN&gt; &lt;SPAN class=""&gt;a&lt;/SPAN&gt; &lt;SPAN class=""&gt;couple&lt;/SPAN&gt; &lt;SPAN class=""&gt;of&lt;/SPAN&gt; &lt;SPAN class=""&gt;advantages:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN class=""&gt;You&lt;/SPAN&gt; &lt;SPAN class=""&gt;don't&lt;/SPAN&gt; &lt;SPAN class=""&gt;need&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;know&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;specific&lt;/SPAN&gt; &lt;SPAN class=""&gt;FeatureTable&lt;/SPAN&gt; &lt;SPAN class=""&gt;implementation&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;identify&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;key&lt;/SPAN&gt; &lt;SPAN class=""&gt;field.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class=""&gt;You&lt;/SPAN&gt; &lt;SPAN class=""&gt;can&lt;/SPAN&gt; &lt;SPAN class=""&gt;use&lt;/SPAN&gt; &lt;SPAN class=""&gt;QueryParameters.ObjectIds&lt;/SPAN&gt; &lt;SPAN class=""&gt;directly&lt;/SPAN&gt; &lt;SPAN class=""&gt;rather&lt;/SPAN&gt; &lt;SPAN class=""&gt;than&lt;/SPAN&gt; &lt;SPAN class=""&gt;constructing&lt;/SPAN&gt; &lt;SPAN class=""&gt;a&lt;/SPAN&gt; &lt;SPAN class=""&gt;potentially&lt;/SPAN&gt; &lt;SPAN class=""&gt;large&lt;/SPAN&gt; &lt;SPAN class=""&gt;WHERE&lt;/SPAN&gt; &lt;SPAN class=""&gt;...&lt;/SPAN&gt; &lt;SPAN class=""&gt;IN&lt;/SPAN&gt; &lt;SPAN class=""&gt;(...)&lt;/SPAN&gt; &lt;SPAN class=""&gt;clause.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Regarding the concern &lt;SPAN class=""&gt;about&lt;/SPAN&gt; &lt;SPAN class=""&gt;large&lt;/SPAN&gt; &lt;SPAN class=""&gt;selections&lt;/SPAN&gt; &lt;SPAN class=""&gt;(100k+&lt;/SPAN&gt; &lt;SPAN class=""&gt;features),&lt;/SPAN&gt; &lt;SPAN class=""&gt;any&lt;/SPAN&gt; &lt;SPAN class=""&gt;solution&lt;/SPAN&gt; &lt;SPAN class=""&gt;will&lt;/SPAN&gt; &lt;SPAN class=""&gt;need&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;persist&lt;/SPAN&gt; &lt;SPAN class=""&gt;enough&lt;/SPAN&gt; &lt;SPAN class=""&gt;information&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;identify&lt;/SPAN&gt; &lt;SPAN class=""&gt;those&lt;/SPAN&gt; &lt;SPAN class=""&gt;selected&lt;/SPAN&gt; &lt;SPAN class=""&gt;features.&lt;/SPAN&gt; &lt;SPAN class=""&gt;Storing&lt;/SPAN&gt; &lt;SPAN class=""&gt;ObjectIDs&lt;/SPAN&gt; &lt;SPAN class=""&gt;is&lt;/SPAN&gt; &lt;SPAN class=""&gt;about&lt;/SPAN&gt; &lt;SPAN class=""&gt;as&lt;/SPAN&gt; &lt;SPAN class=""&gt;compact&lt;/SPAN&gt; &lt;SPAN class=""&gt;as&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;can&lt;/SPAN&gt; &lt;SPAN class=""&gt;get,&lt;/SPAN&gt; &lt;SPAN class=""&gt;but&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;amount&lt;/SPAN&gt; &lt;SPAN class=""&gt;of&lt;/SPAN&gt; &lt;SPAN class=""&gt;data&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;save&lt;/SPAN&gt; &lt;SPAN class=""&gt;and&lt;/SPAN&gt; &lt;SPAN class=""&gt;restore&lt;/SPAN&gt; &lt;SPAN class=""&gt;will&lt;/SPAN&gt; &lt;SPAN class=""&gt;still&lt;/SPAN&gt; &lt;SPAN class=""&gt;scale&lt;/SPAN&gt; &lt;SPAN class=""&gt;with&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;size&lt;/SPAN&gt; &lt;SPAN class=""&gt;of&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;selection.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 10 Jul 2026 19:13:41 GMT</pubDate>
    <dc:creator>JenniferNery</dc:creator>
    <dc:date>2026-07-10T19:13:41Z</dc:date>
    <item>
      <title>How do you serialize the selection state of Features in a FeatureLayer?</title>
      <link>https://community.esri.com/t5/net-maps-sdk-questions/how-do-you-serialize-the-selection-state-of/m-p/1713684#M13964</link>
      <description>&lt;P&gt;We may be entirely going about this the wrong way, but we currently store the 'state' of the FeatureLayer by storing several of its properties on a wrapper class and then serializing that class. So, for FeatureLayers we store the data path, name, renderer json, labelling info, and definition expression as just strings/bools. On deserialization we create a new layer from the path and set all those stored properties back on the layer. One thing that is missing from our setup is the selection state for features.&lt;BR /&gt;&lt;BR /&gt;One idea we had was to:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Get selected features (featureLayer.GetSelectedFeaturesAsync())&lt;/LI&gt;&lt;LI&gt;Determine the ID field for that feature table.&lt;OL&gt;&lt;LI&gt;If it's an ArcGISFeatureTable, then you can use the GlobalIDField property.&lt;/LI&gt;&lt;LI&gt;If it's a ShapeFileFeatureTable, then it should always be "FID"?&lt;/LI&gt;&lt;LI&gt;Unsure what to do if its GeoPackageFeatureTable.&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI&gt;For each selected feature get the ID value from its attribute table using the ID field from step 2.&lt;/LI&gt;&lt;LI&gt;Serialize this collection of string IDs alongside the other layer info.&lt;/LI&gt;&lt;LI&gt;On deserialization build a QueryParameter with a where clause with something like $"Where {tableIDFromStep2} IN ({string.Join(", ", selectedFeatureIDs})"&lt;/LI&gt;&lt;LI&gt;Query out those features and select them on the newly loaded layer.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;The concerns for this setup are pretty minor, but worth mentioning:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Are we identifying the correct field ID? The users are bringing in their own data sources, so can we be certain we are always getting the right key?&lt;/LI&gt;&lt;LI&gt;We could end up storing/querying 100k+ features for large datasets if the user decides to select the whole map for some reason which could be costly and bloat the json file.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, with that said, is this the intended way of doing this? Or is there a much simpler option I missed?&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jul 2026 19:41:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/net-maps-sdk-questions/how-do-you-serialize-the-selection-state-of/m-p/1713684#M13964</guid>
      <dc:creator>JBuchanan</dc:creator>
      <dc:date>2026-07-09T19:41:40Z</dc:date>
    </item>
    <item>
      <title>Re: How do you serialize the selection state of Features in a FeatureLayer?</title>
      <link>https://community.esri.com/t5/net-maps-sdk-questions/how-do-you-serialize-the-selection-state-of/m-p/1713993#M13968</link>
      <description>&lt;P&gt;&lt;SPAN class=""&gt;I&lt;/SPAN&gt; &lt;SPAN class=""&gt;think&lt;/SPAN&gt; &lt;SPAN class=""&gt;your&lt;/SPAN&gt; &lt;SPAN class=""&gt;overall&lt;/SPAN&gt; &lt;SPAN class=""&gt;approach&lt;/SPAN&gt; &lt;SPAN class=""&gt;is&lt;/SPAN&gt; &lt;SPAN class=""&gt;reasonable,&lt;/SPAN&gt; &lt;SPAN class=""&gt;but&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;may&lt;/SPAN&gt; &lt;SPAN class=""&gt;be&lt;/SPAN&gt; &lt;SPAN class=""&gt;able&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;simplify&lt;/SPAN&gt; &lt;SPAN class=""&gt;it.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;Rather&lt;/SPAN&gt; &lt;SPAN class=""&gt;than&lt;/SPAN&gt; &lt;SPAN class=""&gt;special-casing&lt;/SPAN&gt; &lt;SPAN class=""&gt;ArcGISFeatureTable&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;shapefiles,&lt;/SPAN&gt; &lt;SPAN class=""&gt;GeoPackages,&lt;/SPAN&gt; &lt;SPAN class=""&gt;etc.,&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;can&lt;/SPAN&gt; &lt;SPAN class=""&gt;determine&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;ObjectID&lt;/SPAN&gt; &lt;SPAN class=""&gt;field&lt;/SPAN&gt; &lt;SPAN class=""&gt;from&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;table&lt;/SPAN&gt; &lt;SPAN class=""&gt;schema, t&lt;SPAN class=""&gt;hen&lt;/SPAN&gt; &lt;SPAN class=""&gt;serialize&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; ObjectIDs of the selected features:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;LI-CODE lang="csharp"&gt;var objectIdField = featureTable.Fields.FirstOrDefault(f =&amp;gt; f.FieldType == FieldType.OID);
long objectId = Convert.ToInt64(feature.GetAttributeValue(objectIdField.Name));&lt;/LI-CODE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN class=""&gt;To&lt;/SPAN&gt; &lt;SPAN class=""&gt;restore&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;selection,&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;could&lt;/SPAN&gt; &lt;SPAN class=""&gt;persist&lt;/SPAN&gt; &lt;SPAN class=""&gt;a&lt;/SPAN&gt; &lt;SPAN class=""&gt;mapping&lt;/SPAN&gt; &lt;SPAN class=""&gt;of&lt;/SPAN&gt; &lt;SPAN class=""&gt;FeatureTable.TableName&lt;/SPAN&gt; &lt;SPAN class=""&gt;(assuming&lt;/SPAN&gt; &lt;SPAN class=""&gt;it&lt;/SPAN&gt; &lt;SPAN class=""&gt;is&lt;/SPAN&gt; &lt;SPAN class=""&gt;unique&lt;/SPAN&gt; &lt;SPAN class=""&gt;in&lt;/SPAN&gt; &lt;SPAN class=""&gt;your&lt;/SPAN&gt; &lt;SPAN class=""&gt;application)&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;a&lt;/SPAN&gt; &lt;SPAN class=""&gt;list&lt;/SPAN&gt; &lt;SPAN class=""&gt;of&lt;/SPAN&gt; &lt;SPAN class=""&gt;selected&lt;/SPAN&gt; &lt;SPAN class=""&gt;ObjectIDs&lt;/SPAN&gt; &lt;SPAN class=""&gt;obtained&lt;/SPAN&gt; &lt;SPAN class=""&gt;from&lt;/SPAN&gt; &lt;SPAN class=""&gt;FeatureLayer.GetSelectedFeaturesAsync()&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt; &lt;SPAN class=""&gt;On&lt;/SPAN&gt; &lt;SPAN class=""&gt;reload,&lt;/SPAN&gt; &lt;SPAN class=""&gt;populate&lt;/SPAN&gt; &lt;SPAN class=""&gt;QueryParameters.ObjectIds&lt;/SPAN&gt; &lt;SPAN class=""&gt;with&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;saved&lt;/SPAN&gt; &lt;SPAN class=""&gt;IDs,&lt;/SPAN&gt; &lt;SPAN class=""&gt;query&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;matching&lt;/SPAN&gt; &lt;SPAN class=""&gt;features,&lt;/SPAN&gt; &lt;SPAN class=""&gt;and&lt;/SPAN&gt; &lt;SPAN class=""&gt;select&lt;/SPAN&gt; &lt;SPAN class=""&gt;them&lt;/SPAN&gt; &lt;SPAN class=""&gt;on&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;layer.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;This&lt;/SPAN&gt; &lt;SPAN class=""&gt;has&lt;/SPAN&gt; &lt;SPAN class=""&gt;a&lt;/SPAN&gt; &lt;SPAN class=""&gt;couple&lt;/SPAN&gt; &lt;SPAN class=""&gt;of&lt;/SPAN&gt; &lt;SPAN class=""&gt;advantages:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN class=""&gt;You&lt;/SPAN&gt; &lt;SPAN class=""&gt;don't&lt;/SPAN&gt; &lt;SPAN class=""&gt;need&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;know&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;specific&lt;/SPAN&gt; &lt;SPAN class=""&gt;FeatureTable&lt;/SPAN&gt; &lt;SPAN class=""&gt;implementation&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;identify&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;key&lt;/SPAN&gt; &lt;SPAN class=""&gt;field.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class=""&gt;You&lt;/SPAN&gt; &lt;SPAN class=""&gt;can&lt;/SPAN&gt; &lt;SPAN class=""&gt;use&lt;/SPAN&gt; &lt;SPAN class=""&gt;QueryParameters.ObjectIds&lt;/SPAN&gt; &lt;SPAN class=""&gt;directly&lt;/SPAN&gt; &lt;SPAN class=""&gt;rather&lt;/SPAN&gt; &lt;SPAN class=""&gt;than&lt;/SPAN&gt; &lt;SPAN class=""&gt;constructing&lt;/SPAN&gt; &lt;SPAN class=""&gt;a&lt;/SPAN&gt; &lt;SPAN class=""&gt;potentially&lt;/SPAN&gt; &lt;SPAN class=""&gt;large&lt;/SPAN&gt; &lt;SPAN class=""&gt;WHERE&lt;/SPAN&gt; &lt;SPAN class=""&gt;...&lt;/SPAN&gt; &lt;SPAN class=""&gt;IN&lt;/SPAN&gt; &lt;SPAN class=""&gt;(...)&lt;/SPAN&gt; &lt;SPAN class=""&gt;clause.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Regarding the concern &lt;SPAN class=""&gt;about&lt;/SPAN&gt; &lt;SPAN class=""&gt;large&lt;/SPAN&gt; &lt;SPAN class=""&gt;selections&lt;/SPAN&gt; &lt;SPAN class=""&gt;(100k+&lt;/SPAN&gt; &lt;SPAN class=""&gt;features),&lt;/SPAN&gt; &lt;SPAN class=""&gt;any&lt;/SPAN&gt; &lt;SPAN class=""&gt;solution&lt;/SPAN&gt; &lt;SPAN class=""&gt;will&lt;/SPAN&gt; &lt;SPAN class=""&gt;need&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;persist&lt;/SPAN&gt; &lt;SPAN class=""&gt;enough&lt;/SPAN&gt; &lt;SPAN class=""&gt;information&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;identify&lt;/SPAN&gt; &lt;SPAN class=""&gt;those&lt;/SPAN&gt; &lt;SPAN class=""&gt;selected&lt;/SPAN&gt; &lt;SPAN class=""&gt;features.&lt;/SPAN&gt; &lt;SPAN class=""&gt;Storing&lt;/SPAN&gt; &lt;SPAN class=""&gt;ObjectIDs&lt;/SPAN&gt; &lt;SPAN class=""&gt;is&lt;/SPAN&gt; &lt;SPAN class=""&gt;about&lt;/SPAN&gt; &lt;SPAN class=""&gt;as&lt;/SPAN&gt; &lt;SPAN class=""&gt;compact&lt;/SPAN&gt; &lt;SPAN class=""&gt;as&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;can&lt;/SPAN&gt; &lt;SPAN class=""&gt;get,&lt;/SPAN&gt; &lt;SPAN class=""&gt;but&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;amount&lt;/SPAN&gt; &lt;SPAN class=""&gt;of&lt;/SPAN&gt; &lt;SPAN class=""&gt;data&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;save&lt;/SPAN&gt; &lt;SPAN class=""&gt;and&lt;/SPAN&gt; &lt;SPAN class=""&gt;restore&lt;/SPAN&gt; &lt;SPAN class=""&gt;will&lt;/SPAN&gt; &lt;SPAN class=""&gt;still&lt;/SPAN&gt; &lt;SPAN class=""&gt;scale&lt;/SPAN&gt; &lt;SPAN class=""&gt;with&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;size&lt;/SPAN&gt; &lt;SPAN class=""&gt;of&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;selection.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jul 2026 19:13:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/net-maps-sdk-questions/how-do-you-serialize-the-selection-state-of/m-p/1713993#M13968</guid>
      <dc:creator>JenniferNery</dc:creator>
      <dc:date>2026-07-10T19:13:41Z</dc:date>
    </item>
    <item>
      <title>Re: How do you serialize the selection state of Features in a FeatureLayer?</title>
      <link>https://community.esri.com/t5/net-maps-sdk-questions/how-do-you-serialize-the-selection-state-of/m-p/1713999#M13969</link>
      <description>&lt;P&gt;Thanks Jennifer, that is exactly what I was looking for!&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jul 2026 19:43:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/net-maps-sdk-questions/how-do-you-serialize-the-selection-state-of/m-p/1713999#M13969</guid>
      <dc:creator>JBuchanan</dc:creator>
      <dc:date>2026-07-10T19:43:20Z</dc:date>
    </item>
  </channel>
</rss>

