是否有可能从 c# 中的 arraylist 中获取唯一值?,实际上我有一个包含值 = 100,101,102,101,100,102,103 的 arraylist,但我想要从中获取唯一值,例如 100,101,102,103。那么从 arralist 获取不同/唯一值的 c# 语法是什么?
我试过了
Arraylist Others=new Arraylist();
others=TakeanotherValues();
others.Distinct().Toarray();
但错误是“System.Collection.ArrayList Does not copntain defination for Distinct”
除非您绝对必须(例如,因为您使用的是 .NET 1),否则请不要使用 ArrayList,它是一个旧的非泛型类。相反,使用 List<T>
在System.Collections.Generic
命名空间,例如List<int>
或 List<object>
(后者在功能上等同于 ArrayList,因为您可以向其添加任何内容)。
一般情况下,不要直接在System.Collections
里面使用任何东西除非你确定你在做什么;使用 System.Collections.Generic
中的集合相反。
您可以使用 LINQ 方法 Distinct()
在你的数据上,但如果你想使用 ArrayList 你首先需要将它转换为 IEnumerable<T>
使用 Cast<object>()
,像这样:
using System.Linq;
// ...
var distinctItems = myList.Cast<object>().Distinct();
这相当于手动创建一个集合(例如 HashSet<object>
),将列表中的每个项目添加到其中,然后他们从该集合中创建一个列表,因为根据定义集合不会保留重复的项目(它们不会如果你插入一个,他们不会提示,他们只是忽略它)。