来自 SortedList C# 的 LINQ

标签 linq sortedlist

我对 C# 相当陌生,对 LINQ 也完全陌生。

我有一个 SortedList 类型的现有对象,我想使用 LINQ 对其进行过滤。但是我似乎对此有疑问,显然是因为 SortedList 类型不是通用的。

目前,我已经循环遍历了整个 SortedList,并将其中的对象手动添加到列表中,并使用 LINQ 从那里进行过滤。然而,在我看来,这似乎是垃圾。

是否有更好的方法将我的 SortedList 转换为 List<> (我不关心保留 key )?或者确实将我的 SortedList 转换为 SortedList<> 也许?

最佳答案

原始的SortedList类是Collection的一部分。泛型引入了 SortedList,但如果您有旧代码,那么它就不会使用它。

最简单的方法是使用可用于 SortedList 的 Cast 方法或 OfType 扩展方法。这些方法将为您提供 IEnumerable 列表,您可以应用通用 Linq 操作。确保在开头包含 using System.Linq; 然后您应该能够执行如下操作:

sortedList.Cast<int>().Where(i=>i > 5);
sortedList.OfType<Car>().Where(c=> c.Color == Color.Blue);

关于来自 SortedList C# 的 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2370119/

相关文章:

c# - DbQuery 中 ObjectQuery.Parameters 的等价物是什么

c# - 使用 LINQ 从不同的表中获取逗号分隔的列表

c# - Enumerable.OfType<>() 无法按预期方式使用路由集合

c# - 使用 LINQ 和 Entity Framework 检查 c# var 中的空值

c# - 如何将谓词传递给 linq 表达式

允许重复键的 C# 可排序集合

java - 将 SortedList 比较器绑定(bind)到 TableView 比较器会删除排序

python - Python "in"关键字排序列表的效率

C# 合并两个排序列表(联合?)

Android SortedList 删除方法正在跳过项目