using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public static string findNotCommon(string sku, string color){
string[] left = sku.Split('_');
string[] right = color.Split('_');
string [] l = left.Distinct().ToArray();
string[] r = right.Distinct().ToArray();
var results = l.Except(r, StringComparer.OrdinalIgnoreCase);
string id = String.Join("_",results);
public static void Main()
XElement xRecord= XElement.Parse(@"<records><record>
<value>411329_SOFT_APPLE_GREEN</value>
<value>SKINNY DREAMING AWAY</value>
<field name=""Description"">
<value>Dummy Long Description for :SKINNY DREAMING AWAY</value>
<value>WhiteStuff</value>
<field name=""ColourGroup"">
<value language=""en-GB"">GREEN</value>
<value>SOFT_APPLE_GREEN</value>
<field name=""ColourCode"">
<value language=""en-GB"">100% POLYESTER</value>
<field name=""FabricType"">
<value language=""en-GB""/>
<value language=""en-GB""/>
<field name=""NeckShape"">
<value language=""en-GB""/>
<field name=""PatternType"">
<value language=""en-GB""/>
<field name=""PrimaryShape"">
<value language=""en-GB""/>
<field name=""ShirtFit"">
<value language=""en-GB""/>
<field name=""SleeveLength"">
<value language=""en-GB""/>
<value language=""en-GB""/>
<value language=""en-GB"">0</value>
<field name=""Producturl"">
<value language=""en-GB"">/action/ViewProduct-Start?SKU=411329128</value>
<field name=""DateIntroduced"">
<value>30/05/2014</value>
<field name=""ProductImages"">
<value>https://c3n4sovn.cloudimg.io/s/width/150/product-images/411/411329-MD-SOFT_APPLE_GREEN.jpg</value>
<field name=""AlternateProductImages"">
<value>https://c3n4sovn.cloudimg.io/s/width/150/product-images/411/411329-MF-SOFT_APPLE_GREEN.jpg</value>
<field name=""ProductBadge"">
<field name=""BVReviewRating"">
<field name=""BVReviewNumber"">
<value currency=""GBP"">10</value>
<preorder>False</preorder>
<price ref=""GBP"">10</price>
<field name=""WasPrice"">
<value currency=""GBP"">12</value>
<value language=""en-GB"">OS</value>
<category uniqueid=""1000012"">
<category uniqueid=""1000312"">
<![CDATA[Test Knitwear]]>
<value>411329_CLEAR_WATER_BLUE</value>
<value>SKINNY DREAMING AWAY</value>
<field name=""Description"">
<value>Dummy Long Description for :SKINNY DREAMING AWAY</value>
<value>WhiteStuff</value>
<field name=""ColourGroup"">
<value language=""en-GB"">BLUE</value>
<value>CLEAR_WATER_BLUE</value>
<field name=""ColourCode"">
<value language=""en-GB"">100% POLYESTER</value>
<field name=""FabricType"">
<value language=""en-GB""/>
<value language=""en-GB""/>
<field name=""NeckShape"">
<value language=""en-GB""/>
<field name=""PatternType"">
<value language=""en-GB""/>
<field name=""PrimaryShape"">
<value language=""en-GB""/>
<field name=""ShirtFit"">
<value language=""en-GB""/>
<field name=""SleeveLength"">
<value language=""en-GB""/>
<value language=""en-GB""/>
<value language=""en-GB"">0</value>
<field name=""Producturl"">
<value language=""en-GB"">/action/ViewProduct-Start?SKU=411329136</value>
<field name=""DateIntroduced"">
<value>30/05/2014</value>
<field name=""ProductImages"">
<value>https://c3n4sovn.cloudimg.io/s/width/150/product-images/411/411329-MD-CLEAR_WATER_BLUE.jpg</value>
<field name=""AlternateProductImages"">
<value>https://c3n4sovn.cloudimg.io/s/width/150/product-images/411/411329-MF-CLEAR_WATER_BLUE.jpg</value>
<field name=""ProductBadge"">
<field name=""BVReviewRating"">
<field name=""BVReviewNumber"">
<value currency=""GBP"">9</value>
<preorder>False</preorder>
<price ref=""GBP"">9</price>
<field name=""WasPrice"">
<value currency=""GBP"">10.8</value>
<value language=""en-GB"">OS</value>
<category uniqueid=""1000012"">
<category uniqueid=""1000312"">
<![CDATA[Test Knitwear]]>
XElement xTransformedElementFields = new XElement("records");
XElement prodSku = new XElement("value");
List<string> refcode = new List<string>();
string dataImg = string.Empty;
string sku = string.Empty;
string color = string.Empty;
string multipleColor = string.Empty;
string id = string.Empty;
bool isMultiColour = false;
List<string> productIds = new List<string>();
foreach(XElement xrec in xRecord.Elements("record"))
XElement xrecord = new XElement("record");
XElement xfields = new XElement("fields");
foreach (XElement xItem in xrec.Element("fields").Elements("field"))
switch (xItem.Attribute("name").Value.ToLower())
switch (xItem.Attribute("name").Value.ToLower())
dataImg = xItem.Element("values").Element("value").Value;
sku = xItem.Element("values").Element("value").Value;
color = xItem.Element("values").Element("value").Value;
if(productIds.Count < 0 )
string Pid = findNotCommon(sku,color);
if(!string.IsNullOrEmpty(Pid)){
var recentProductID = findNotCommon(sku,color);
if(productIds.Contains(recentProductID)){
productIds.Add(recentProductID);
Console.WriteLine(color);
xfields.Add(new XElement("field",
new XAttribute("name", "FSM_DATA_IMAGE"),
new XElement("value",dataImg))));
xfields.Add(new XElement("field",
new XAttribute("name", "FSM_Multi_Colour"),
new XElement("value",isMultiColour))));
xfields.Add(new XElement("field",
new XAttribute("name", "ID"),
new XElement("value",id))));
xTransformedElementFields.Add(xrecord);
Console.WriteLine(xTransformedElementFields);