回答
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. PHP - 删除数组中相同的同胞(叶)(从数组中删除相同的数组)
- 3. 删除数组元素(C#)
- 4. 从mongo数组中删除null元素
- 5. Rails Ransack - 从数组中删除元素
- 6. 从数组(Java)中删除空元素
- 7. 从数组中删除元素(拼接)
- 8. 如何从数组中删除元素?
- 9. pl/sql从数组中删除元素
- 10. 从数组中删除元素
- 11. 如何从数组中删除元素?
- 12. 从数组中删除元素
- 13. 从数组中删除多个元素
- 14. 从数组中删除一些元素
- 15. 夫特删除元素,然后从数组中删除相同元件字典的内部
- 16. 从元组列表中删除元素
- 17. 如何删除数组中的元素
- 18. 删除数组中的空值元素
- 19. 删除数组中的元素
- 20. 存储,删除数组中的元素
- 21. 从字符串中删除相同的元素
- 22. 如何删除具有相同值的数组元素?
- 23. NSMutableDictionary从不同的数组中删除相同的值
- 24. 从JavaScript中的数组中删除元素的最佳方法?
- 25. 从指针数组中删除元素 - C++
- 26. 在两个相同长度的数组中删除nan AND对应的元素
- 27. 删除Ruby数组中的相邻元素?
- 28. 从元素中删除元素而不删除元素后
- 29. 如何从React中的数组状态中删除元素?
- 30. 从php中删除数组中的元素
如果我可以在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