Esempio n. 1
0
        static void Main(string[] args)
        {
            string w1 = "Dad";
            string w2 = "Father";

            //Создание экземпляра делегата на основе метода
            Console.WriteLine("На основе метода:");
            MaxOrMin f1 = new MaxOrMin(Max);

            LongestOrShortest("Длиннее: ", w1, w2, f1);

            MaxOrMin f2 = Min;

            LongestOrShortest("Короче: ", w1, w2, f2);

            //Использование лямбда-выражение
            Console.WriteLine("\nИспользование лямбда-выражение:");
            LongestOrShortest("Длиннее: ", "Mother", "Mom",
                              (string str1, string str2) =>
            {
                if (str1.Length > str2.Length)
                {
                    return(str1);
                }
                else
                {
                    return(str2);
                }
            }
                              );


            //Использование Func
            Console.WriteLine("\nBльзование Func:");
            LongestOrShortestFunc("Func", "Function", Max);

            //Использование Action
            Console.WriteLine("\nИспользование Action:");
            Action <string, string> a = (str1, str2) =>
            {
                if (str1.Length < str2.Length)
                {
                    Console.WriteLine("Короче:" + str1);
                }
                else
                {
                    Console.WriteLine("Короче:" + str2);
                }
            };

            a("Action", "Act");


            Console.ReadLine();
        }
Esempio n. 2
0
        private static IObservable <TResult> Calculate <TObject, TResult>([NotNull] this IObservable <ChangesAndCollection <TObject> > source,
                                                                          [NotNull] Func <TObject, TResult> valueSelector,
                                                                          MaxOrMin maxOrMin,
                                                                          TResult emptyValue = default(TResult))
            where TResult : struct, IComparable <TResult>
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }
            if (valueSelector == null)
            {
                throw new ArgumentNullException(nameof(valueSelector));
            }
            return(source.Scan(default(TResult?), (state, latest) =>
            {
                var current = state;
                var requiresReset = false;

                foreach (var change in latest.Changes)
                {
                    var value = valueSelector(change.Item);
                    if (!current.HasValue)
                    {
                        current = value;
                    }

                    if (change.Type == AggregateType.Add)
                    {
                        int isMatched = maxOrMin == MaxOrMin.Max ? 1 : -1;
                        if (value.CompareTo(current.Value) == isMatched)
                        {
                            current = value;
                        }
                    }
                    else
                    {
                        //check whether the max / min has been removed. If so we need to look
                        //up the latest from the underlying collection
                        if (value.CompareTo(current.Value) != 0)
                        {
                            continue;
                        }
                        requiresReset = true;
                        break;
                    }
                }

                if (requiresReset)
                {
                    var collecton = latest.Collection;
                    if (collecton.Count == 0)
                    {
                        current = default(TResult?);
                    }
                    else
                    {
                        current = maxOrMin == MaxOrMin.Max
                            ? collecton.Max(valueSelector)
                            : collecton.Min(valueSelector);
                    }
                }
                return current;
            })
                   .Select(t => t ?? emptyValue)
                   .DistinctUntilChanged());
        }
Esempio n. 3
0
 public HeapDouble(MaxOrMin maxOrMin)
 {
     _elements = new List <Point>();
     _maxOrMin = maxOrMin;
 }
Esempio n. 4
0
 public Heap(int size, MaxOrMin maxOrMin)
 {
     _elements = new int[size];
     _maxOrMin = maxOrMin;
 }
        public IActionResult Getssrk(int type)
        {
            var response = ResponseModelFactory.CreateResultInstance;

            try
            {
                var            timestamp        = GetTimeStamp();
                string         masterSecret     = "917f2d05481695420cdb74d109e38874a009fbb01e5739772ccac0fa4fdf2ab0f703c2fa6ce68af9ac9bc02b25bfb0cfd2b9e97e9aea37b7a2ab0e3a420638ca";
                string         appKey           = "linanqu";
                string         getCorrectionUrl = "https://webapi.getui.com/api/auth/creditAuth";
                var            sign1            = GetMD5Hash(timestamp);
                var            sign             = GetSHA256Hash(appKey + sign1 + masterSecret);
                HttpWebRequest myRequest        = (HttpWebRequest)WebRequest.Create(getCorrectionUrl);
                myRequest.Method      = "POST";
                myRequest.ContentType = "application/json";
                string body = "{\"appKey\":\"" + appKey + "\",\"sign\":\"" + sign + masterSecret + "\",\"timestamp\":" + Convert.ToInt32(timestamp) + ",\"version\":\"" + "0.0.1" + "\"}";
                byte[] btbs = Encoding.UTF8.GetBytes(body);
                myRequest.ContentLength = btbs.Length;
                myRequest.GetRequestStream().Write(btbs, 0, btbs.Length);
                HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
                StreamReader    reader     = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
                string          returnJson = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
                var             code       = myResponse.StatusCode.ToString();
                reader.Close();
                myResponse.Close();
                Timedata model = JsonConvert.DeserializeObject <Timedata>(returnJson);
                string   token = model.data.accessToken;
                if (type == 1)
                {
                    string         getCorrectionUrl1 = "https://webapi.getui.com/api/population/dashboard/getList";
                    HttpWebRequest myRequest1        = (HttpWebRequest)WebRequest.Create(getCorrectionUrl1);
                    myRequest1.Method = "POST";
                    //请求头参数设置
                    myRequest1.Headers.Add("Access-Token", token);
                    myRequest1.ContentType           = "application/json";
                    myRequest1.UseDefaultCredentials = true;
                    string body1 = "{\"code\":\"" + "330112" + "\"}";
                    byte[] btbs1 = Encoding.UTF8.GetBytes(body1);
                    myRequest1.ContentLength = btbs1.Length;
                    myRequest1.GetRequestStream().Write(btbs1, 0, btbs1.Length);
                    HttpWebResponse myResponse1 = (HttpWebResponse)myRequest1.GetResponse();
                    StreamReader    reader1     = new StreamReader(myResponse1.GetResponseStream(), Encoding.UTF8);
                    string          returnJson1 = reader1.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
                    var             code1       = myResponse1.StatusCode.ToString();
                    reader1.Close();
                    myResponse1.Close();
                    TimeStreet model1 = JsonConvert.DeserializeObject <TimeStreet>(returnJson1);
                    int        max    = 0;
                    int        min    = 0;
                    using (_dbContext)
                    {
                        Guid     id       = Guid.Parse("8678D1A0-1E2F-49B3-8F36-17CC1FD8F2CD");
                        MaxOrMin maxOrMin = _dbContext.MaxOrMin.Where(x => x.Guid == id).FirstOrDefault();
                        if (model1.data.children[11].count > Convert.ToInt32(maxOrMin.MaxCount))
                        {
                            maxOrMin.MaxCount = model1.data.children[11].count.ToString();
                            max = Convert.ToInt32(maxOrMin.MaxCount);
                        }
                        else
                        {
                            max = Convert.ToInt32(maxOrMin.MaxCount);
                        }
                        if (model1.data.children[11].count < Convert.ToInt32(maxOrMin.MinCount))
                        {
                            maxOrMin.MinCount = model1.data.children[11].count.ToString();
                            min = Convert.ToInt32(maxOrMin.MinCount);
                        }
                        else
                        {
                            min = Convert.ToInt32(maxOrMin.MinCount);
                        }

                        _dbContext.MaxOrMin.Update(maxOrMin);
                        _dbContext.SaveChanges();
                    }
                    model1.data.children[11].maxcount = max;
                    model1.data.children[11].mincount = min;
                    response.SetData(model1.data.children[11]);
                }
                else if (type == 2)
                {
                    string         getCorrectionUrl1 = "https://webapi.getui.com/api/population/dashboard/getUserTags";
                    HttpWebRequest myRequest1        = (HttpWebRequest)WebRequest.Create(getCorrectionUrl1);
                    myRequest1.Method = "POST";
                    //请求头参数设置
                    myRequest1.Headers.Add("Access-Token", token);
                    myRequest1.ContentType           = "application/json";
                    myRequest1.UseDefaultCredentials = true;
                    string body1 = "{\"code\":\"" + "330112109000" + "\"}";
                    byte[] btbs1 = Encoding.UTF8.GetBytes(body1);
                    myRequest1.ContentLength = btbs1.Length;
                    myRequest1.GetRequestStream().Write(btbs1, 0, btbs1.Length);
                    HttpWebResponse myResponse1 = (HttpWebResponse)myRequest1.GetResponse();
                    StreamReader    reader1     = new StreamReader(myResponse1.GetResponseStream(), Encoding.UTF8);
                    string          returnJson1 = reader1.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
                    var             code1       = myResponse1.StatusCode.ToString();
                    reader1.Close();
                    myResponse1.Close();
                    TimePerson model1 = JsonConvert.DeserializeObject <TimePerson>(returnJson1);
                    response.SetData(model1);
                }
                else if (type == 3)
                {
                    string         getCorrectionUrl1 = "https://webapi.getui.com/api/population/dashboard/getOriginCity";
                    HttpWebRequest myRequest1        = (HttpWebRequest)WebRequest.Create(getCorrectionUrl1);
                    myRequest1.Method = "POST";
                    //请求头参数设置
                    myRequest1.Headers.Add("Access-Token", token);
                    myRequest1.ContentType           = "application/json";
                    myRequest1.UseDefaultCredentials = true;
                    string body1 = "{\"code\":\"" + "330112109000" + "\"}";
                    byte[] btbs1 = Encoding.UTF8.GetBytes(body1);
                    myRequest1.ContentLength = btbs1.Length;
                    myRequest1.GetRequestStream().Write(btbs1, 0, btbs1.Length);
                    HttpWebResponse myResponse1 = (HttpWebResponse)myRequest1.GetResponse();
                    StreamReader    reader1     = new StreamReader(myResponse1.GetResponseStream(), Encoding.UTF8);
                    string          returnJson1 = reader1.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
                    var             code1       = myResponse1.StatusCode.ToString();
                    reader1.Close();
                    myResponse1.Close();
                    TimeSource model1 = JsonConvert.DeserializeObject <TimeSource>(returnJson1);
                    response.SetData(model1);
                }
                else if (type == 4)
                {
                    string         getCorrectionUrl1 = "https://webapi.getui.com/api/population/count/getWorkData";
                    HttpWebRequest myRequest1        = (HttpWebRequest)WebRequest.Create(getCorrectionUrl1);
                    myRequest1.Method = "POST";
                    //请求头参数设置
                    myRequest1.Headers.Add("Access-Token", token);
                    myRequest1.ContentType           = "application/json";
                    myRequest1.UseDefaultCredentials = true;
                    string body1 = "{\"area_code\":\"" + "330112109000" + "\"}";
                    byte[] btbs1 = Encoding.UTF8.GetBytes(body1);
                    myRequest1.ContentLength = btbs1.Length;
                    myRequest1.GetRequestStream().Write(btbs1, 0, btbs1.Length);
                    HttpWebResponse myResponse1 = (HttpWebResponse)myRequest1.GetResponse();
                    StreamReader    reader1     = new StreamReader(myResponse1.GetResponseStream(), Encoding.UTF8);
                    string          returnJson1 = reader1.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
                    var             code1       = myResponse1.StatusCode.ToString();
                    reader1.Close();
                    myResponse1.Close();
                    TimePostWork model1 = JsonConvert.DeserializeObject <TimePostWork>(returnJson1);
                    response.SetData(model1);
                }
                return(Ok(response));
            }
            catch (Exception ex)
            {
                response.SetFailed("获取失败");
                response.SetData(ex.Message);
                return(Ok(response));
            }
        }
Esempio n. 6
0
 static void LongestOrShortest(string way, string word1, string word2, MaxOrMin Fnk)
 {
     Console.WriteLine(way + Fnk(word1, word2));
 }
        public static int[] mergeArrays(int[][] arr)
        {
            /*
             * Write your code here.
             */
            Heap heap;
            int  K = arr.Length;
            int  N = arr[0].Length;

            int[] result = new int[K * N];

            if (K == 0)
            {
                return(new int[0]);
            }
            if (N == 1)
            {
                return new int[1] {
                           arr[0][0]
                }
            }
            ;

            MaxOrMin maxOrMin = MaxOrMin.NoFound;


            for (int i = 0; i < K; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    if (arr[0][0] > arr[0][1])
                    {
                        maxOrMin = MaxOrMin.Max;
                        break;
                    }
                    else if (arr[0][0] < arr[0][1])
                    {
                        maxOrMin = MaxOrMin.Min;
                        break;
                    }
                }
                if (maxOrMin != MaxOrMin.NoFound)
                {
                    break;
                }
            }
            heap = new Heap(N * K, maxOrMin);



            for (int i = 0; i < K; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    heap.Add(arr[i][j]);
                }
            }



            int pointer = 0;

            while (pointer <= (N * K) - 1)
            {
                result[pointer] = heap.Pop();
                pointer++;
            }



            return(result);
        }
    }
Esempio n. 8
0
 /// <summary>
 /// .ctor
 /// </summary>
 /// <param name="maxOrMin">max heap or min heap</param>
 public MaxMinHeap(MaxOrMin maxOrMin) => _maxOrMin = maxOrMin;