Пример #1
0
 public static IEnumerable<int> MethodOfDelegate(int[] arr, ArrayCondition cond)
 {
     List<int> poselem = new List<int>();
     foreach (var elem in arr)
     {
         if (cond(elem))
         {
             poselem.Add(elem);
         }
     }
     return poselem;
 }
Пример #2
0
        public void LoadFiles()
        {
            if (this.FileIds == null)
            {
                return;
            }

            var fileIds = new List <object>();

            this.FileIds.ForEach(fid => fileIds.Add(fid));
            ArrayCondition vc = new ArrayCondition("Id", ArrayConditionOperator.ValueIsIn, fileIds);

            AppManager.Instance.Files().GetByFilter().Where(vc).TryExecute(
                delegate(RequestResult <IEnumerable <File> > result)
            {
                AppManager.Instance.InvokeInUIThread(
                    delegate()
                {
                    AppManager.Instance.HideProgress();
                    if (result.Success)
                    {
                        List <FileItem> fileItems = new List <FileItem>();
                        foreach (var file in result.Value)
                        {
                            fileItems.Add(new FileItem()
                            {
                                Name = file.Filename, Uri = new Uri(AppManager.Instance.Files().GetFileDownloadUrl(file.Id), UriKind.Absolute)
                            });
                        }

                        this.fileItems = fileItems;
                        this.OnPropertyChanged(new PropertyChangedEventArgs("FileItems"));
                    }
                    else
                    {
                        AppManager.Instance.ShowErrorMessage(result.Error.Message);
                    }
                }
                    );
            }
                );
        }
Пример #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Введите количество элементов массива:");
            int N = int.Parse(Console.ReadLine());
            Random r = new Random();
            int[] a;
            a = new int[N];
            for (int i = 0; i < N; i++)
            {
                a[i] = r.Next(-50, 50);
            }

            //Прямой метод
            List<TimeSpan> ListWatch1 = new List<TimeSpan>();
            for (int i = 1; i < 15; i++)
            {
                Stopwatch s1 = new Stopwatch();
                s1.Start();
                PryamoyMethod(a);
                s1.Stop();
                ListWatch1.Add(s1.Elapsed);
            }
            ListWatch1.Sort();
            Console.WriteLine("Прямой метод затратил времени на исполнение:\n {0}", ListWatch1[7]);

            //Метод с делегатом
            List<TimeSpan> ListWatch2 = new List<TimeSpan>();
            ArrayCondition method = new ArrayCondition(MethodCondition);
            for (int i = 1; i < 15; i++)
            {
                Stopwatch s2 = new Stopwatch();
                s2.Start();
                MethodOfDelegate(a, method);
                s2.Stop();
                ListWatch2.Add(s2.Elapsed);
            }
            ListWatch2.Sort();
            Console.WriteLine("Метод с условием через делегат затратил времени на исполнение:\n {0}", ListWatch2[7]);

            //Метод с анонимным делегатом
            List<TimeSpan> ListWatch3 = new List<TimeSpan>();

            ArrayCondition PositiveNumberAnon = delegate (int elem)
            {
                if (elem > 0)
                    return true;
                else
                    return false;
            };

            for (int i = 1; i < 15; i++)
            {
                Stopwatch s3 = new Stopwatch();
                s3.Start();
                MethodOfDelegate(a, PositiveNumberAnon);
                s3.Stop();
                ListWatch3.Add(s3.Elapsed);
            }
            ListWatch3.Sort();
            Console.WriteLine("Метод с условием через анонимный делегат затратил времени на исполнение:\n {0}", ListWatch3[7]);

            //Метод с лямбда выражением
            List<TimeSpan> ListWatch4 = new List<TimeSpan>();
            ArrayCondition PositiveNumberLambda = (int elem) => elem > 0 ? true : false;
            for (int i = 1; i < 15; i++)
            {
                Stopwatch s4 = new Stopwatch();
                s4.Start();
                MethodOfDelegate(a, PositiveNumberLambda);
                s4.Stop();
                ListWatch4.Add(s4.Elapsed);
            }
            ListWatch3.Sort();
            Console.WriteLine("Метод с условием через делегат в виде лямбда выражения затратил времени на исполнение:\n {0}", ListWatch4[7]);

            //LINQ
            List<TimeSpan> ListWatch5 = new List<TimeSpan>();
            for (int i = 1; i < 15; i++)
            {
                Stopwatch s5 = new Stopwatch();
                s5.Start();
                GetPositive(a);
                s5.Stop();
                ListWatch5.Add(s5.Elapsed);
            }
            ListWatch5.Sort();
            Console.WriteLine("LINQ-выражение затратил времени на исполнение:\n {0}", ListWatch5[7]);

            Console.ReadKey();
        }