我尝试从现有的ConcurrentHashSet
返回一组项目,但只选择某个ID
的项目,我已经为它编写了LINQ,我唯一挣扎的是它会返回IEnumerable
并且我有一个自定义的ConcurrentHashSet
课程,而且我不确定如何转换它?
我已经尝试使用(ConcurrentHashSet)
进行投射,但它没有奏效,我的ConcurrentHashSet
确实实施IEnumerable
所以我猜测它是可能的。
public ConcurrentHashSet<Item> GetItemsById(int id)
{
return Items.Where(x => x.HasLoaded && x.Id == id);
}
答案 0 :(得分:1)
.Where
会返回IEnumerable<T>
,您无法更改。您尝试的显式投射不起作用,因为每个ConcurrentHashSet
都是IEnumerable
(继承),IEnumerable
不一定是ConcurrentHashSet
。编译器不能说。
实例化一个新的ConcurrentHashSet
(假设它有一个
接收IEnumerable
的构造函数,它应该具有):
return new ConcurrentHashSet<Item>(Items.Where(x => x.HasLoaded && x.Id == id));
IEnumerable<Item>
答案 1 :(得分:-1)
下面的代码返回一个集合,因为它可以在foreach中枚举:
Select Top 0 * into NewTable from OldTable