如何从 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();