c# - 如何从 arraylist 中获取不同/唯一的值?

标签 c# arraylist

<分区>

是否有可能从 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> ),将列表中的每个项目添加到其中,然后他们从该集合中创建一个列表,因为根据定义集合不会保留重复的项目(它们不会如果你插入一个,他们不会提示,他们只是忽略它)。

关于c# - 如何从 arraylist 中获取不同/唯一的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22088781/

相关文章:

c# - 如何在程序退出时保存变量值?

java - 从字符串中删除某些信息时出现数组越界异常

c# - 如何从 ASP.NET 中的 ListView 中删除列标题

c# - 改进 ASP.NET 网站的 TTFB

c# - 设置 Cursor.Position "half"- 有效(从一台显示器到另一台显示器)

java - 什么是对 LinkedList 内部元素的(缓慢)访问

java - 为什么我们 addAll(Collection) 而不是 Iterable?

C# If not (this) Or (this) or (this) - 多条件 IF/OR

c# - 使用 IronPython 时如何处理 C# 小数?

java - 调用 PaintComponent 时数组的大小变为 0