从List.FindAll创建新的派生类对象>>

问题描述 投票:0回答:1

我有一个名为Myitem的类和一个派生的ListMyItemCollection ...

public class MyItemCollection : List<MyItem> { ... }
public class MyItem { ... }

我想使用FindAll返回包含MyItemCollection值子集的MyItem类的新实例...

public MyItemCollection GetInUse()
{
  return this.FindAll(x => x.InUse);
}

但是,由于FindAll返回List<MyItem>而不是MyItemCollection,因此以上操作失败。

是否有可能获得.FindAll以返回MyItemsCollection对象,或使用MyItemsCollection的返回值来初始化.FindAll对象?

我可以执行以下操作,但有效,但是我想知道是否有更好的解决方案...

public MyItemCollection GetInUse(bool inUse)
{
  var col = new MyItemsCollection();
  foreach (var item in this.FindAll(x => x.InUse))
    col.Add(item);
  return col;
}

[我有一个名为Myitem的类和一个派生的List类MyItemCollection ... public类MyItemCollection:List {...} public class MyItem {...}我想使用FindAll返回...

c# lambda generic-list
1个回答
1
投票

List<T>具有使用IEnumerable<T>参数的构造函数。您可以在类中公开类似的构造函数,然后执行以下操作:

© www.soinside.com 2019 - 2024. All rights reserved.