gpt4 book ai didi

c# - 过滤数组列表内容的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 22:52:32 35 4
gpt4 key购买 nike

假设我有一个 USBDevice 对象的 ArrayList。每个 USBDevice 都有 ProductID 和 VendorID 属性(等等)。我想创建另一个 ArrayList,它是第一个只包含与特定 VID 匹配的 USBDevice 的子集。这样做的最短方法是什么?我还没有尝试过,但是可以像这样使用 lambda 表达式吗...

ArrayList CompleteList = new ArrayList();
...
// Fill CompleteList with all attached devices....
...
ArrayList SubSetList = CompleteList.Where(d => d.VID == "10C4")

最佳答案

你需要一个 Actor 。编译器唯一知道 ArrayLists 的是它们包含对象。它不知道里面对象的类型,所以你必须告诉它。

ArrayList subSetList = new ArrayList(CompleteList.Cast<USBDevice>()
.Where(d => d.VID == "10C4")
.ToList());

但这似乎毫无意义。你为什么用旧的 ArrayList class 和 LINQ 在同一个项目中?您应该尝试开始使用 List<T> System.Collections.Generic 中的类取而代之的是命名空间,那么您的 where 表达式将无需任何强制转换即可工作,就像您想要的那样。

关于c# - 过滤数组列表内容的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2319413/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com