比较数组和XElement的所有元素

时间:2019-04-11 12:31:30

标签: c# xml

将数组的所有元素与XElement对象的所有元素进行“ for”循环比较时遇到问题。我需要检查第二个结构是否具有第一个结构中的元素,如果第一个结构具有第二个结构中没有的元素,则需要添加它。它应该像这样工作:检查循环中的字符串是否包含一个特定的片段,该片段指示它们是同一对象,如果不是,则进入另一个循环/“ if”或其他。

我使用.Contains()查找字符串片段,这表明它们是相同的。 第一个对象是一个数组[30],部分填充有字符串。 第二个对象是“名称” XElement,我可以使用“ for”循环来获得,如下所示:

XDocument doc1 = XDocument.Load(folderName1 + "\\" + TXTFiles[i]);
IEnumerable<XElement> objectList = doc1.Descendants("ObjectList");
IEnumerable<XElement> HmiTag = objectList.Elements("Hmi.Tag.Tag");
for (int f = 0; f < HmiTag.Count(); f++)
{
IEnumerable<XElement> Name = HmiTag.ElementAt(f).Descendants("Name");
if (!(Name.ElementAt(0).ToString().Contains("Zone" + nbr + "_Pallet_Transfer") && !(array[ ].Contains("Zone" + nbr + "_Pallet_Transfer")) // something like that
}

该数组包括:

Zone3_Pallet_Transfer,
Zone1_Pallet_Transfer,
Zone5_Pallet_Transfer,

“名称”包括:

DB10000_Zone2_Data_Pallet_Transfer{0},
DB10000_Zone2_Data_Pallet_Transfer{1},
DB10000_Zone2_Data_Pallet_Transfer{2},
DB10000_Zone2_Data_Pallet_Transfer{3},
DB10000_Zone2_Data_Pallet_Transfer{4},
DB10000_Zone2_Data_Pallet_Transfer{5},
DB10000_Zone2_Data_Pallet_Transfer{6},
DB10000_Zone2_Data_Pallet_Transfer{7},
DB10000_Zone2_Data_Pallet_Transfer{8},
DB10000_Zone2_Data_Pallet_Transfer{9},
DB10000_Zone2_Data_Pallet_Transfer{10},
DB10000_Zone2_Data_Pallet_Transfer{11},
DB10000_Zone2_Data_Pallet_Transfer{12},
DB10000_Zone2_Data_Zone3_Pallet_Transfer,
DB10000_Zone2_Data_Zone1_Pallet_Transfer,

,并且还应包括在数组中找到的DB10000_Zone2_Data_Zone5_Pallet_Transfer。

0 个答案:

没有答案