string[] src = {"1","2","4","7","8","9","10","12"}
string[] tgt = {"5"};(1~12的任意一个数字)判断src是否有tgt用
foreach ( string x in src)
{
    if (tgt == x)
}

if (src.Contains(tgt))还是用char[]数组比较,效率最快呢? 谢谢

解决方案 »

  1.   

    不知道这种比较的效率怎么样
    var result = src.Intersect(tgt).ToList().Count();
      

  2.   

                bool s = tgt.All(t => src.Contains(t));
      

  3.   

    既然第二个数组只有一个元素,那么这么写:
    string[] src = { "1", "2", "4", "7", "8", "9", "10", "12" };
    string[] tgt = { "5" };
    bool result = src.Contains(tgt[0]);如果有多个元素,这么写:
    string[] src = { "1", "2", "4", "7", "8", "9", "10", "12" };
    string[] tgt = { "4", "7" };
    bool result = tgt.All(x => src.Contains(x));
    Response.Write(result);
      

  4.   


    public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value, IEqualityComparer<TSource> comparer)
    {
        if (comparer == null)
        {
            comparer = EqualityComparer<TSource>.Default;
        }
        if (source == null)
        {
            throw Error.ArgumentNull("source");
        }
        foreach (TSource local in source)
        {
            if (comparer.Equals(local, value))
            {
                return true;
            }
        }
        return false;
    }
    看看源码就该知道了,continue只是提供了方便