Arvin ZHANG 2018-04-14 04:58 采纳率: 100%
浏览 7092
已采纳

C#中List为什么要提供FindIndex和IndexOf两个方法?这两个方法对比有什么不同?

C#中List为什么要提供FindIndex和IndexOf两个方法?
这两个方法对比有什么优劣?

// 定义
public int FindIndex(Predicate<T> match);
public int FindIndex(int startIndex, Predicate<T> match);
public int FindIndex(int startIndex, int count, Predicate<T> match);

public int IndexOf(T item, int index, int count);
public int IndexOf(T item, int index);
public int IndexOf(T item);
// 使用
int index = keys.FindIndex(x => x == key);
int index = keys.IndexOf(key);
  • 写回答

1条回答 默认 最新

  • threenewbee 2018-04-14 09:52
    关注

    这是有历史原因的。在C#1.0中,只有IndexOf
    C# 2.0里觉得这个功能不灵活,只能匹配整个对象,比如说要查找某个元素的属性等于某个值,就不行了。于是加上了FindIndex
    到了C# 3.0时代,觉得FindIndex又不行,只能作用于List,所以有了LINQ,有了Where
    但是,我们必须保证程序向前兼容啊,不能因为有了新的,就不支持旧的,不然原有的程序怎么升级呢?所以看似重复的功能被保留了下来。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)