• Framework 2.0 数组Contains方法


    前段时间装了vs2010,开发项目,默认情况下,vs2010采用的Framework是4.0版本的,后来,客户需求,要求改成2.0。

    直接装2.0是装不了,必须下一个Framwork3.5 的安装包,装好好,2.0也装上了。

    改成2.0后,发现数组不只从Contains这个方法,原来这个方法包含在System.Linq中,2.0中并没有这个组件,3.0以上才支持。

    数组有Contains方法,在.NET Framework 2.0 版中,Array 类实现ICollection<T>接口,但必须如下书写代码:

     
    1.string[] ss = new string[] { "1", "2" };
    2.bool b = (ss as ICollection<string>).Contains("1");

    MSDN中说明如下:
    在.NET Framework 2.0 版中,Array 类实现 System.Collections.Generic.IList<T>、System.Collections.Generic.ICollection<T> 和 System.Collections.Generic.IEnumerable<T> 泛型接口。由于实现是在运行时提供给数组的,因而对于文档生成工具不可见。因此,泛型接口不会出现在 Array 类的声明语法中,也不会有关于只能通过将数组强制转换为泛型接口类型(显式接口实现)才可访问的接口成员的参考主题。将某一数组强制转换为这三种接口之一时需要注意的关键一点是,添加、插入或移除元素的成员会引发 NotSupportedException。

     

    下例的第二种方法是上文里讲到的三种方法之一.

    C#中怎么判断一个数组中是否存在某个数组值

    (1) 第一种方法:

    int[] ia = {1,2,3};
    int id = Array.IndexOf(ia,1); // 这里的1就是你要查找的值
    if(id==-1)
      // 不存在
    else
      // 存在

    (2) 第二种方法:

    string[] strArr = {"a","b","c","d","e"};
    bool exists = ((IList)strArr).Contains("a");
    if(exists)
      // 存在
    else
      // 不存在



    注意: 用IList需要using System.Collections;

  • 相关阅读:
    Python-05 基础语法-函数
    使用单个命令安装 WSL 现在可在 Windows 10 版本 2004 及更高版本中使用
    java.sql public interface ResultSet
    Selecting Contents for Uber JAR
    【初次使用h0遇到的一些问题】
    关于Swagger-UI下的渗透实战
    CTF—MISC—USB键盘流量分析
    k8s之路-Rancher
    单元测试
    flutter开发中设置模拟器一直悬浮在ide上方
  • 原文地址:https://www.cnblogs.com/uwking/p/2060115.html
Copyright © 2020-2023  润新知