回答
using System.Linq;
...
var output = array.Distinct().ToArray();
沒有LINQ:
int[] array = new[] { 0, 2, 2, 8, 4, 6, 1, 0, 4 };
List<int> result = new List<int>();
foreach (int element in array)
{
if (!result.Contains(element))
result.Add(element);
}
int[] resultArray = result.ToArray();
您可以使用LINQ並執行myArray.Distinct().ToArray()
。
如果我可以在Visual Studio 2.0中做同樣的事情,那麼在那裏沒有像LINQ這樣的概念,所以我能做什麼? – 2011-06-01 12:13:21
你的意思是.NET 2.0,對不對?如果沒有LINQ,你必須編寫自己的方法來篩選數組中的變量,並將它們添加到一個新的數組中,如果那個變量沒有變量的話。該方法將返回新的唯一數組。 – Edgar 2011-06-01 12:17:12
請提供我常用的解決方案,用於任何版本的ASP.NET – 2011-06-01 12:17:25
這裏是一個要在.NET2和C#2正常工作的方法。
(由於HashSet<T>
類不可用.NET2它採用了Dictionary<K,V>
而不是爲effiicient O(1)鍵查找,忽略值。)
int[] input = new int[] { 0, 2, 2, 8, 4, 6, 1, 0, 4 };
int[] output = DistinctItems(input); // 0, 2, 8, 4, 6, 1
// ...
public static T[] DistinctItems<T>(T[] input)
{
Dictionary<T, bool> dict = new Dictionary<T, bool>(input.Length);
return Array.FindAll(input, delegate(T item)
{
if (dict.ContainsKey(item))
return false;
dict.Add(item, true);
return true;
});
}
如果你不想讓多個條目同樣的價值,你應該使用HashSet<T>
。就像那樣,當你添加一個元素(如果它已經存在的話)的時候直接檢測。但這取決於你的需求...
- 1. 如何從數組中刪除相同元素的元素
- 2. 刪除數組C中的相同元素#
- 3. 從c數組中刪除元素
- 4. 從char數組中刪除元素(C)
- 5. 我需要從列表中刪除相同的元素c
- 6. PHP - 刪除數組中相同的同胞(葉)(從數組中刪除相同的數組)
- 7. 刪除數組元素(C#)
- 8. 從數組中刪除並返回Ruby中刪除的元素
- 9. 從數組中刪除一些元素
- 10. Rails Ransack - 從數組中刪除元素
- 11. 從mongo數組中刪除null元素
- 12. 從靜態數組中刪除元素
- 13. 從數組中刪除元素javascript
- 14. pl/sql從數組中刪除元素
- 15. 從數組中刪除多個元素
- 16. 從數組中刪除一個元素
- 17. 從數組中刪除元素
- 18. 如何從數組中刪除元素?
- 19. 如何從數組中刪除元素?
- 20. 從數組中刪除元素
- 21. 從數組中刪除元素(拼接)
- 22. 從數組(Java)中刪除空元素
- 23. 從數組中刪除元素
- 24. 從元素可能不同的數組中刪除重複的元素
- 25. 從兩個數組中刪除具有相同索引的零元素
- 26. 夫特刪除元素,然後從數組中刪除相同元件字典的內部
- 27. 從元組列表中刪除元素
- 28. 如何刪除C++中的數組中的特定元素
- 29. 刪除數組中的空值元素
- 30. 存儲,刪除數組中的元素
如果我可以在Visual Studio 2.0中做同樣的事情,那麼就沒有像LINQ這樣的概念,那麼我該怎麼辦? – 2011-06-01 12:13:55
'Contains','Add'和'ToArray'是LINQ擴展。 – Edgar 2011-06-01 12:24:05
@埃德加:你確定嗎?我將Framework切換到2.0,從列表中刪除Linq並編譯並運行正常。檢查System.Collections.Generic.List。它包含'Contains','Add'和'ToArray'方法。 –
Episodex
2011-06-01 12:26:43