<?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: Get difference between two shapefile in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386238#M10253</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Try this code, didn't tested in VS but there can be only miss typed something.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//Compare Features&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public bool FeaturesEqual(IFeature pFeatureA, IFeature pFeatureB)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{[INDENT] // attribute equal test&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;int diffCount=0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(int i=0; i&amp;lt;pFeatureA.Fields.FieldCount; i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{[INDENT] bool equal = Object.Equal(pFeatureA.getValue(i), pFeatureA.getValue(i));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if(!equal){[INDENT] diffCount++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT][/INDENT]}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// geometry equal test&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IArea pAreaA = pFeatureA.Shape;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IArea pAreaB = pFeatureA.Shape;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if(pAreaA.Area != pAreaB.Area){[INDENT] diffCount++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT]if(diffCount &amp;gt;0){[INDENT]&amp;nbsp; return false;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT]return true;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT]}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;IArea&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/arcgisengine/arcobjects/esrigeometry/iarea.htm"&gt;http://resources.esri.com/help/9.3/arcgisengine/arcobjects/esrigeometry/iarea.htm&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;IFeaure&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esrigeodatabase/IFeature.htm"&gt;http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esrigeodatabase/IFeature.htm&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;it can be used IRowCompare but i vould rather test it before posting some code&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esriGeoDatabase/IRowCompare.htm"&gt;http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esriGeoDatabase/IRowCompare.htm&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;from documentation you see that Feature implements IRowCompare&amp;nbsp; so you can do&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// use this in for loop&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IRwoCompare pRowComapre&amp;nbsp;&amp;nbsp; = pFeatureA as IRowCompare;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IRow pRowB = pFeatureB as IRow;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if(pRowCompare.IsEqual)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;... do some logic if equal&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;... do some not equal logic&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;please test this second because I used this long ago and don't have chance to test it now but it rings me that it will be helpful.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 09 Aug 2011 07:50:07 GMT</pubDate>
    <dc:creator>DubravkoAntonic</dc:creator>
    <dc:date>2011-08-09T07:50:07Z</dc:date>
    <item>
      <title>Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386230#M10245</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi forum,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I use ArcMap 9.3 and I would like to create a toolbar that query two shapefiles and get the difference between them.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I think that I need to perform a SelectByLocation but how do this whith c# or vb.net language?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you help me please?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks a lot in advance!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Aug 2011 09:48:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386230#M10245</guid>
      <dc:creator>ValeriaAndronaco</dc:creator>
      <dc:date>2011-08-08T09:48:59Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386231#M10246</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Please post some more info.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But if we assume you have polygons in those shape files that are in same projection and you would like ti see differences in geometry between there two features. And in case you know some atribute value that binds two features that you&amp;nbsp; would like to compare by their geometry.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If all these assumptions are correct you can use ITopologicalOperator.Difference to get difference polygons but you should use it twice once to see difference polygons that are outside and second time to see these that are inside start geometry.&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/arcgisengine/arcobjects/esrigeometry/itopologicaloperator_difference.htm"&gt;http://resources.esri.com/help/9.3/arcgisengine/arcobjects/esrigeometry/itopologicaloperator_difference.htm&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;if you have desktop sdk you will find there descriptive picture of this tool.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Aug 2011 11:55:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386231#M10246</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2011-08-08T11:55:09Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386232#M10247</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks al lot for the answer!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have two identical shapefiles, with the same fields.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The two shape refer to two different years than these should be have same geometric or alfanumeric difference. I will obtain a new shapefile with these difference.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;How can I use ITopologicalOperator.Difference to obtain this result?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks thanks thanks for the help!!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Aug 2011 12:03:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386232#M10247</guid>
      <dc:creator>ValeriaAndronaco</dc:creator>
      <dc:date>2011-08-08T12:03:35Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386233#M10248</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;ITopologicalOperator is implemented by all high level geometries .... See SDK link, read, re read, and try to somehow visualize on map geometries results.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Usage of ITopologicalOperator :[INDENT]&lt;/SPAN&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
ITopologicalOperator2 pTopOp = pFeature.ShapeCopy as ITopologicalOperator2;
IGeometry differenceGeometry = pTopOp.Difference(pSegment);

pTopOp = differenceGeometry as ITopologicalOperator2;
pTopOp.IsKnownSimple_2 = false;
pTopOp.Simplify();

pFeature.Shape = pTopOp as IGeometry;
pFeature.Store();&lt;/PRE&gt;&lt;SPAN&gt; [/INDENT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 17:44:57 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386233#M10248</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2021-12-11T17:44:57Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386234#M10249</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;THANKS!!!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm trying the following code&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;IMxDocument itfMxDoc;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMap pmap;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureCursor itfCursor1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureCursor itfCursor2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeature itfFeature1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeature itfFeature2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureLayer pflayer1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureLayer pflayer2;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itfMxDoc = m_application.Document as IMxDocument;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pmap = itfMxDoc.FocusMap;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pflayer1 = GetLayerByName("Shp1");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureSelection pFlSelection = pflayer1 as IFeatureSelection;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get index from selected feature&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; //but I will not select anything
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumIDs itfListId = pFlSelection.SelectionSet.IDs;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itfListId.Reset();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int Index = itfListId.Next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itfFeature1 = pflayer1.FeatureClass.GetFeature(Index);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get your buffer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITopologicalOperator pTopo = itfFeature1.ShapeCopy as ITopologicalOperator;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPolygon pPolygon = pTopo.Buffer(1) as IPolygon;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pflayer2 = GetLayerByName("Shp2");

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISpatialFilter itfFilter;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itfFilter = new SpatialFilter();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itfFilter.Geometry = pPolygon as IGeometry;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itfFilter.GeometryField = pflayer2.FeatureClass.ShapeFieldName;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itfFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelEnvelopeIntersects;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get your points inside your buffer 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itfCursor2 = pflayer2.FeatureClass.Search(itfFilter, false);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itfFeature2 = itfCursor2.NextFeature();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Loop for each point in your buffer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (itfFeature2 != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Get feature id from each feature to select later.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itfFeature2 = itfCursor2.NextFeature();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;but I have same problem.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;First of all, I will not select anythyng in the shape but I wold like to calculate the difference between the totla fields of the shape.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you read/correct my code please?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;About your code, what should I pass as "pSegment"?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank for your contribute!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks a lot!!!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The name of my shape are Shp1 and Shp2&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 17:45:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386234#M10249</guid>
      <dc:creator>ValeriaAndronaco</dc:creator>
      <dc:date>2021-12-11T17:45:00Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386235#M10250</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This is how you can select features by some atribute&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/arcgisengine/arcobjects/esrigeodatabase/iqueryfilter_example.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;http://resources.esri.com/help/9.3/arcgisengine/arcobjects/esrigeodatabase/iqueryfilter_example.htm&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Did read, but have no time to correct - implement all that. I think you can do it. If not, post again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;More info about querying features are here&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/arcgisengine/java/doc/aa43bbb3-6427-11dc-9ca3-0b35f906bb2e.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;http://resources.esri.com/help/9.3/arcgisengine/java/doc/aa43bbb3-6427-11dc-9ca3-0b35f906bb2e.htm&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You sad that you will not select anything, but you are trying to browse through section set. It seems to me that you use some copy paste code that you didn't understand. But anyway to get through features from some layer you should use query.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Selecting features that will after that appear in SelectinSet you can do by IFeatureClass.Select see SDK&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Use cursor recycling.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;To compare fields you should use IFeatures.getField(fieldIndex) for each feature and compare it. You can use base compare method object.equals(feature1FieldAtSameIndex, feature2FieldAtSameIndex); see C# MSDN for Object.Equals(obja, objB);&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/w4hkze5k.aspx" rel="nofollow noopener noreferrer" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/w4hkze5k.aspx&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;this is ok if the fieldcount and field order are same, if not use fieldfind by finding field index by name and creating some array... it can be many solutions but I don't know details&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;//before loop
int equalFieldCount = 0;

// in the loop
bool equal = Object.Equal(pfeature1.getValue(i), pfeature2.getValue(i))
if(equal)[INDENT] equalFieldCount++;
[/INDENT]// after loop
bool allFieldsAreEqual = false;
if(pfeature.fields.fieldsCount - "numberOfGeometryFields" == equalFieldCount)[INDENT] allFieldsAreEqual = true;
[/INDENT]&lt;/PRE&gt;&lt;SPAN&gt;pSegment is any geometry object polygon, line, point.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 17:45:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386235#M10250</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2021-12-11T17:45:02Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386236#M10251</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Your requirement is still not clear. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Do i understand that you are trying to identify all the features which have "current values" in "certain fields" in your shape file "which are different from values" compared to another version of "the same shape file" in the past?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Vijay&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Aug 2011 21:34:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386236#M10251</guid>
      <dc:creator>G__Venkata_VijayaKumar</dc:creator>
      <dc:date>2011-08-08T21:34:41Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386237#M10252</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks to all forum for your availability and sorry if I continue to disturbe you but I'm in a difficult situation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have attached the screenshot of the attribute table of the two shape.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The fields are the same and in the same order.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have the necessity to compare the two shape to get the geometric and alfanumeric difference.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Later, I have to save the results into a new shape.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't know how get all the fields of the two shape and compare it and how to save the final result.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you suggest me some code?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Do not think I'm lazy, I'm still doing tests but without results.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I hope that you help me!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Aug 2011 07:19:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386237#M10252</guid>
      <dc:creator>ValeriaAndronaco</dc:creator>
      <dc:date>2011-08-09T07:19:39Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386238#M10253</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Try this code, didn't tested in VS but there can be only miss typed something.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//Compare Features&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public bool FeaturesEqual(IFeature pFeatureA, IFeature pFeatureB)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{[INDENT] // attribute equal test&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;int diffCount=0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(int i=0; i&amp;lt;pFeatureA.Fields.FieldCount; i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{[INDENT] bool equal = Object.Equal(pFeatureA.getValue(i), pFeatureA.getValue(i));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if(!equal){[INDENT] diffCount++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT][/INDENT]}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// geometry equal test&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IArea pAreaA = pFeatureA.Shape;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IArea pAreaB = pFeatureA.Shape;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if(pAreaA.Area != pAreaB.Area){[INDENT] diffCount++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT]if(diffCount &amp;gt;0){[INDENT]&amp;nbsp; return false;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT]return true;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT]}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;IArea&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/arcgisengine/arcobjects/esrigeometry/iarea.htm"&gt;http://resources.esri.com/help/9.3/arcgisengine/arcobjects/esrigeometry/iarea.htm&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;IFeaure&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esrigeodatabase/IFeature.htm"&gt;http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esrigeodatabase/IFeature.htm&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;it can be used IRowCompare but i vould rather test it before posting some code&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esriGeoDatabase/IRowCompare.htm"&gt;http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esriGeoDatabase/IRowCompare.htm&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;from documentation you see that Feature implements IRowCompare&amp;nbsp; so you can do&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// use this in for loop&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IRwoCompare pRowComapre&amp;nbsp;&amp;nbsp; = pFeatureA as IRowCompare;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IRow pRowB = pFeatureB as IRow;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if(pRowCompare.IsEqual)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;... do some logic if equal&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;... do some not equal logic&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;please test this second because I used this long ago and don't have chance to test it now but it rings me that it will be helpful.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Aug 2011 07:50:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386238#M10253</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2011-08-09T07:50:07Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386239#M10254</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Antonic,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have tried to write code using your suggestion but I can not get any results.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thisi is the code that I have used to the click event of the command tool:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
public override void OnClick()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureLayer pflayer1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureLayer pflayer2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeature featureA;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeature featureB;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pflayer1 = GetLayerByName("Shape1");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureSelection p1FlSelection = pflayer1 as IFeatureSelection;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int[] idList = GetFidList(@"D:\ShapeFile1").ToArray();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureCursor feature1Cursor = pflayer1.FeatureClass.GetFeatures(idList, false);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureA = feature1Cursor.NextFeature();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pflayer2 = GetLayerByName("Shape2");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int[] oidList = GetFidList(@"D:\ShapeFile1").ToArray();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureCursor feature2Cursor = pflayer2.FeatureClass.GetFeatures(oidList, false);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureB = feature2Cursor.NextFeature();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;int&amp;gt; fidList = new List&amp;lt;int&amp;gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (featureA != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (featureB != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string risultato = FeaturesEqual(featureA, featureB);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!String.IsNullOrEmpty(risultato))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fidList.Add(Convert.ToInt32(risultato));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureB = feature2Cursor.NextFeature();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature2Cursor = pflayer2.FeatureClass.GetFeatures(oidList, false);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureB = feature2Cursor.NextFeature();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature1Cursor = pflayer1.FeatureClass.GetFeatures(idList, false);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureA = feature1Cursor.NextFeature();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
//At this point it stops and leaves
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string elenco = String.Empty;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (int numero in fidList)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elenco += numero + ",";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elenco = elenco.Trim(',');

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMap pMap = m_hookHelper.FocusMap;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IActiveView pActiveView = (IActiveView)m_hookHelper.FocusMap;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string where = "FID IN (" + elenco + ")";

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SelectMapFeaturesByAttributeQuery(pActiveView, pflayer1, where);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;At the point commented in blue color the procedure stops and leaves.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the red function:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
//Compare Features
//temporarily I consider only attribute compare and not geometry
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string FeaturesEqual(IFeature pFeatureA, IFeature pFeatureB)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // attribute equal test
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int diffCount = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 2; i &amp;lt; pFeatureA.Fields.FieldCount; i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string valore1 = pFeatureA.get_Value(i).ToString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string valore2 = pFeatureB.get_Value(i).ToString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool equal = ESRI.ArcGIS.Geodatabase.Object.Equals(pFeatureA.get_Value(i), pFeatureB.get_Value(i));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!equal)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; diffCount++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (diffCount &amp;gt; 0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return pFeatureA.OID.ToString();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return String.Empty;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //// geometry equal test
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //IArea pAreaA = pFeatureA.Shape as IArea;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //IArea pAreaB = pFeatureB.Shape as IArea;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if (pAreaA.Area != pAreaB.Area)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp; diffCount++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if (diffCount &amp;gt; 0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //return true;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

public static List&amp;lt;int&amp;gt; GetFidList(string path)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;int&amp;gt; fidList = new List&amp;lt;int&amp;gt;();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String shapefileStringTemplate =
&amp;nbsp;&amp;nbsp;&amp;nbsp; "Provider=ESRI.GeoDB.OleDB.1;Data Source={0};" +
&amp;nbsp;&amp;nbsp;&amp;nbsp; "Extended Properties=workspacetype=esriDataSourcesFile.ShapefileWorkspaceFactory.1;Geometry={1}";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String connectionString = String.Format(shapefileStringTemplate, path,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Fabbricati");

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OleDbCommand command = myOleDbConnection.CreateCommand();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command.CommandType = CommandType.Text;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command.CommandText = String.Format(@"SELECT FID FROM FABBRICATI");

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myOleDbConnection.Open();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OleDbDataReader reader = command.ExecuteReader();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (reader.Read() == true)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fidList.Add(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Convert.IsDBNull(reader["FID"]) ? 0 : Convert.ToInt32(reader["FID"])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reader.Close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return fidList;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (myOleDbConnection.State != ConnectionState.Closed)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myOleDbConnection.Close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you see the error?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I trust in your help!!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 16:24:56 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386239#M10254</guid>
      <dc:creator>ValeriaAndronaco</dc:creator>
      <dc:date>2021-12-12T16:24:56Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386240#M10255</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This is huge code part to answer at once.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Enclose OnClick implementation in try catch.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But there are some lines you should comment or change.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
public override void OnClick()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // i will reuse cursor false-&amp;gt; true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureCursor feature1Cursor = pflayer1.FeatureClass.GetFeatures(idList, &lt;STRONG&gt;true&lt;/STRONG&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (featureA != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // queryin again with same params makes forever loop
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // using only first feature from an array
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color:Red;"&gt;feature1Cursor = pflayer1.FeatureClass.GetFeatures(idList, &lt;STRONG&gt;true&lt;/STRONG&gt;);&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureA = feature1Cursor.NextFeature();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;SPAN style="color:DeepSkyBlue;"&gt;//At this point it stops and leaves&lt;/SPAN&gt;
//&lt;STRONG&gt; because your code is not in try catch block and exception occured&lt;/STRONG&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string elenco = String.Empty;
&lt;/PRE&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
public string FeaturesEqual(IFeature pFeatureA, IFeature pFeatureB)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if value is null you have exception use &lt;STRONG&gt;Convert.ToSring(pFeatureA.get_Value(i));&lt;/STRONG&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string valore1 = &lt;SPAN style="color:Red;"&gt;pFeatureA.get_Value(i).ToString();&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // I intend to use System.Object.Equals didn't use ESRI's object before
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool equal = ESRI.ArcGIS.Geodatabase.Object.Equals(pFeatureA.get_Value(i), pFeatureB.get_Value(i));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;SPAN&gt;For now I don't have idea what else is wrong&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 17:45:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386240#M10255</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2021-12-11T17:45:05Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386241#M10256</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Ok.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I may have the wrong solution. So do not get the result I need.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I would try to change the method.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;How can I do in c #, a "Select by location" between two shapefiles with the condition "are identical to"?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Aug 2011 13:18:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386241#M10256</guid>
      <dc:creator>ValeriaAndronaco</dc:creator>
      <dc:date>2011-08-11T13:18:27Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386242#M10257</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hope this will help&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Copy paste functions into your Tool and on MouseDown get some Features and pass them as starting point for comparing.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// searches for intersection in target layer with geometry&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public static IFeatureCursor SpatialQuery(IFeatureLayer pTargetFeatureLayer, IGeometry pSearchGeometry, esriSpatialRelEnum spatialRelation)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Check if features geometry intersects with other features in other target layer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// commentate and do compare by length or area&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;private static void SelectByShapeAndCheckIfEqual(IFeature searchFeature)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// test if fields have equal value&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;private static void SelectByShapeAndCheckIfEqual(IFeature searchFeature)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Use debugger and SDK to understand what is going on. I hope you will use it and reuse it.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Aug 2011 23:32:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386242#M10257</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2011-08-11T23:32:39Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386243#M10258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thnks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Your code is perfect, This is exactly the solution I was looking for!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You have been very kind.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;However ... I could ask another thing?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;How can I use the same code without loading the layers in the toc?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Good evening!!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 14 Aug 2011 14:06:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386243#M10258</guid>
      <dc:creator>ValeriaAndronaco</dc:creator>
      <dc:date>2011-08-14T14:06:19Z</dc:date>
    </item>
    <item>
      <title>Re: Get difference between two shapefile</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386244#M10259</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Please post in another thread maybe someone will answer your question, I'm currently sort of without the time to write complete solutions.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Wish you luck.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Aug 2011 07:59:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/get-difference-between-two-shapefile/m-p/386244#M10259</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2011-08-15T07:59:12Z</dc:date>
    </item>
  </channel>
</rss>

