我有以下代碼:在字典刪除重複<INT,列表<PointF>>
Dictionary<int, List<PointF>> dictEntities = new Dictionary<int, List<PointF>>();
dictEntities.Add(1, new List<PointF>() { new PointF(1.0F, 2.0F), new PointF(3.0F, 4.0F) });
dictEntities.Add(2, new List<PointF>() { new PointF(3.0F, 4.0F), new PointF(1.0F, 2.0F) });
dictEntities.Add(3, new List<PointF>() { new PointF(7.0F, 8.0F), new PointF(9.0F, 6.0F) });
我想刪除字典條目,其列出了重複。 刪除重複項後的預期結果:詞典現在包含2個條目(「1」和「3」或「2」和「3」),因爲條目1和2具有相同的PointF列表。 1或2從字典中刪除。我想我必須首先對列表進行排序,然後以某種方式對其進行區分?但是,如何實際刪除重複的條目?
我至今嘗試過是這樣的:
foreach (var item in dictEntities.ToList())
{
while (dictEntities.Values.Contains(item.Value))
{
dictEntities.Remove(item.Key);
}
}
但這總是清空整部字典。我必須以某種方式解決它。
謝謝
你嘗試過什麼到目前爲止,和你看到的結果嗎?一旦你嘗試了一些人們很樂意提供幫助,但通常他們希望首先看到一些努力。 –
Linq在這裏不太合適,它只會看起來像代碼高爾夫。只需使用嵌套的foreach或實際的設計模式來爲您的行爲建模,而不是使用一組列表的字典。 –
你的列表中總是有2個'PointF'值嗎?如果是這樣,看起來你會更好地與自定義類包含這個,而不是列表。 – DavidG