У меня проблема с удалением дубликатов ссылок в моем списке.Удаление дубликатов ссылок в списке C#
У меня есть этот список
List<SaveMongo> toReturn
с моим классом SaveMongo, который выглядит, как этот
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()
{ }
}
Всякий раз, когда я хочу, чтобы добавить элемент в список, я использую следующий код
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);
}
Однако иногда я получаю дубликаты ссылок. Я попытался использовать это
toReturn = toReturn.Distinct().ToList();
, чтобы удалить их. Безуспешно.
Я также попытался это сделать
if (!toReturn.Contains(AddingSaveMongo(doc.GetValue("_id"))))
toReturn.Add(AddingSaveMongo(doc.GetValue("_id")));
Тем не менее, без успеха. Но всякий раз, когда я печатаю ссылки в моем списке я получаю эти результаты
Что я здесь отсутствует, так что я до сих пор дубликаты ссылок в моем списке?
В качестве альтернативы, если вы» re using .netfw> 3.5, вы можете использовать HashSet. Тогда вам не придется беспокоиться о дубликатах. – cup
'HashSet' все равно нужно будет знать, как сравнивать эти объекты. –