Ho problemi a eliminare i riferimenti duplicati nella mia lista.Eliminazione di riferimenti duplicati nell'elenco C#
ho questa lista
List<SaveMongo> toReturn
con la mia classe SaveMongo che assomiglia a questo
public class SaveMongo
{
public ObjectId _id { get; set; }
public DateTime date { get; set; }
public Guid ClientId { get; set; }
public List<TypeOfSave> ListType = new List<TypeOfSave>();
public List<ObjectId> ListObjSave = new List<ObjectId>();
public SaveMongo()
{ }
}
Ogni volta che voglio aggiungere un elemento alla selezione Io uso il seguente codice
public static fctName(BsonDocument doc)
{
toReturn.Add(AddingSaveMongo(doc.GetValue("_id")));
}
public static SaveMongo AddingSaveMongo(BsonValue ObjValue)
{
foreach (SaveMongo doc in SpeCollection.FindAll())
{
foreach (var id in doc.ListObjSave)
{
if (id == ObjValue)
return (doc);
}
}
return (null);
}
Tuttavia, a volte ottengo riferimenti duplicati. Ho provato a utilizzare questo
toReturn = toReturn.Distinct().ToList();
per eliminarli. Senza successo.
Ho anche provato a fare questo
if (!toReturn.Contains(AddingSaveMongo(doc.GetValue("_id"))))
toReturn.Add(AddingSaveMongo(doc.GetValue("_id")));
Ancora senza successo. Ma ogni volta che posso stampare i riferimenti nella mia lista ho coloro risultato
Quello che mi manca qui in modo che ho ancora duplicati riferimenti nella mia lista?
In alternativa, se si' usando .netfw> 3.5, potresti usare un HashSet. Quindi non dovrai preoccuparti dei duplicati. – cup
'HashSet' dovrà ancora sapere come confrontare tali oggetti. –