如何从 XmlArray 中的列表中检测和删除重复项(读入时)
How to detect and remove duplicates from List in XmlArray (when reading in)
这是一个更大的 XML 对象的一个属性(用 C# 表示):
[XmlArray]
public List<CustomAssignment> CustomAssignments
{
get => _CustomAssignments; set { _CustomAssignments = value; }
}
private List<CustomAssignment> _CustomAssignments = new List<CustomAssignment>();
CustomAssignment
对象是:
public class CustomAssignment
{
[XmlAttribute]
public int Index
{
get => _Index; set => _Index = value;
}
private int _Index;
}
我注意到有时 XML 数据中有重复项。例如:
<CustomAssignments>
<CustomAssignment Index="0" />
<CustomAssignment Index="0" />
</CustomAssignments>
我现在知道为什么会发生这种情况,所以我可以在将来防止它发生。但是有没有一种简单的方法可以从我的 List
中删除这些重复项?
XML 文件在序列化时能实现吗?
假设您有一个名为“_data”的变量,其中填充了您的 XML 数据。
您可以轻松做到这一点:
_data = _data.GroupBy(x => x.Index).Select(x => x.FirstOrDefault()).ToList();
这是一个更大的 XML 对象的一个属性(用 C# 表示):
[XmlArray]
public List<CustomAssignment> CustomAssignments
{
get => _CustomAssignments; set { _CustomAssignments = value; }
}
private List<CustomAssignment> _CustomAssignments = new List<CustomAssignment>();
CustomAssignment
对象是:
public class CustomAssignment
{
[XmlAttribute]
public int Index
{
get => _Index; set => _Index = value;
}
private int _Index;
}
我注意到有时 XML 数据中有重复项。例如:
<CustomAssignments>
<CustomAssignment Index="0" />
<CustomAssignment Index="0" />
</CustomAssignments>
我现在知道为什么会发生这种情况,所以我可以在将来防止它发生。但是有没有一种简单的方法可以从我的 List
中删除这些重复项?
XML 文件在序列化时能实现吗?
假设您有一个名为“_data”的变量,其中填充了您的 XML 数据。
您可以轻松做到这一点:
_data = _data.GroupBy(x => x.Index).Select(x => x.FirstOrDefault()).ToList();