请教一下Array.find()怎么用?
不要给我MSDN里的例子了,那个我看不懂,好像还不正确,最好是写个小例子。

解决方案 »

  1.   

    没用过,估计是这样private void FindSample()
    {
      byte[] byts = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
      byte ret = Array.Find<byte>(byts, new Predicate<byte>(FindByte));
      byte[] rets = Array.FindAll<byte>(byts, new Predicate<byte>(FindByte));
    }bool FindByte(byte b)
    {
        if (b == 13) return true;
        if (b == 10) return true;
        return false;
    }
      

  2.   

    int[] aa = { 2, 1, 3, 9 };
         textBox1.Text = Array.Find<int>(aa, ProductGT10).ToString();        private static bool ProductGT10(int bb)
        {
            if (bb > 4)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
      

  3.   

    参见MSDN:C# 
    public static T Find<T> (
    T[] array,
    Predicate<T> match
    )
     
    类型参数

    数组元素的类型。
    参数
    array
    要搜索的从零开始的一维 Array。match
    Predicate,定义要搜索的元素的条件。返回值
    如果找到与指定谓词定义的条件匹配的第一个元素,则为该元素;否则为类型 T 的默认值。using System;
    using System.Drawing;public class Example
    {
        public static void Main()
        {
            // Create an array of five Point structures.
            Point[] points = { new Point(100, 200), 
                new Point(150, 250), new Point(250, 375), 
                new Point(275, 395), new Point(295, 450) };        // To find the first Point structure for which X times Y 
            // is greater than 100000, pass the array and a delegate
            // that represents the ProductGT10 method to the Shared 
            // Find method of the Array class. 
            Point first = Array.Find(points, ProductGT10);        // Note that you do not need to create the delegate 
            // explicitly, or to specify the type parameter of the 
            // generic method, because the C# compiler has enough
            // context to determine that information for you.        // Display the first structure found.
            Console.WriteLine("Found: X = {0}, Y = {1}", first.X, first.Y);
        }    // This method implements the test condition for the Find
        // method.
        private static bool ProductGT10(Point p)
        {
            if (p.X * p.Y > 100000)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }/* This code example produces the following output:Found: X = 275, Y = 395
     */