加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C#中查找数组中给定类型的元素

发布时间:2020-12-16 00:12:51 所属栏目:百科 来源:网络整理
导读:我有一个包含一系列(基类)车辆的Fleet类.阵列中的车辆是车辆的子类:平原,火车和汽车.该阵列是私有的,但Fleet类必须提供一种方法来获取给定类型的车辆. 就像是: class Fleet{ private Vehicle[] _vehicles; // returns the vehicles of the specified subcl
我有一个包含一系列(基类)车辆的Fleet类.阵列中的车辆是车辆的子类:平原,火车和汽车.该阵列是私有的,但Fleet类必须提供一种方法来获取给定类型的车辆.

就像是:

class Fleet
{
    private Vehicle[] _vehicles;

    // returns the vehicles of the specified subclass
    public ???? Get(????)
    {
        return ????
    }
}

Fleet fleet = new Fleet("fleet.def");

Trains[] trains = fleet.Get(Trains);   // looks clean but isn't possible
Plains[] plains = fleet.Get<Plains>(); // looks okay but don't know
                                       //   how to implement

(我正在使用数组,但实际上任何可以迭代的集合类型都很好.)

现在,正如您所看到的,我完全不知道如何实现这一点.我正在为Get方法寻找一个优雅的解决方案,效率并不是真正的问题.请详细说明解决方案中涉及的关键技术,以便我可以在我的C#书中查找它们……

谢谢!

解决方法

你的Fleet.Get()会是这样的

public IEnumerable<T> Get<T>()
{
  return _vehicles.OfType<T>();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读