Пример #1
0
        public void Reload()
        {
            var arr = JArray.Parse(File.ReadAllText("data/questions.json"));

            foreach (var item in arr)
            {
                var tq = new TriviaQuestion(item["Question"].ToString().SanitizeMentions(), item["Answer"].ToString().SanitizeMentions(), item["Category"]?.ToString());
                pool.Add(tq);
            }
            var r = new FaultyRandom();

            pool = new ConcurrentHashSet <TriviaQuestion>(pool.OrderBy(x => r.Next()));
        }
Пример #2
0
        public static void Main()
        {
            ConcurrentHashSet <string> set = new ConcurrentHashSet <string>()
            {
                "string",
                "testing",
                "word",
            };

            Console.WriteLine(set.IsEmpty ? "Empty" : "Not Empty");
            set.Clear();
            Console.WriteLine(set.IsEmpty ? "Empty" : "Not Empty");

            for (int i = 0; i < 10; i++)
            {
                set.Add(i.ToString());
            }

            Console.WriteLine("Contents: " + string.Join(", ", set.OrderBy(x => x)));

            foreach (string item in set.Take(5).ToList())
            {
                if (set.TryRemove(item, out string removed))
                {
                    Console.WriteLine("Removed: " + removed);
                }
            }
            if (set.TryGetValue("7", out string str))
            {
                Console.WriteLine(str + " was found");
            }

            if (set.TryGetValue("8", out str))
            {
                Console.WriteLine(str + " was found");
            }
        }
Пример #3
0
        /// <summary>
        /// Gets the current scanned data in polar vectors format (PolarVector ).
        /// </summary>
        /// <returns>List&lt;PolarVector&gt;.</returns>
        public static ConcurrentHashSet <PolarVector> GetCurrentVectors()
        {
            var result = new ConcurrentHashSet <PolarVector>();

            var tmpList = new List <string>();

            for (var index = 0; index < 8192; index++)
            {
                tmpList.Add("                                                                                                                                                      ");
            }

            var scanData = tmpList.ToArray();

            var stopWatch1 = new Stopwatch();

            stopWatch1.Start();

            var grabResult = LidarGetStringData(
                scanData,
                (ulong)scanData.Length,
                out var outputSize,
                2000);

            stopWatch1.Stop();
            Console.WriteLine($@"Call {nameof(LidarGetStringData)} duration: {stopWatch1.ElapsedMilliseconds}ms");

            if (grabResult == 0 &&
                outputSize > 0)
            {
                var stopWatch2 = new Stopwatch();
                stopWatch2.Start();
                var scanDataResult = scanData.Take((int)outputSize);

                Parallel.ForEach(scanDataResult, (dataString, state) =>
                {
                    var payLoad = dataString.Trim();
                    if (string.IsNullOrEmpty(payLoad))
                    {
                        return;
                    }

                    var dataStringParts = payLoad.Split(';');
                    if (dataStringParts.Length <= 1)
                    {
                        return;
                    }

                    if (double.TryParse(dataStringParts[0], NumberStyles.Any, CultureInfo.CurrentCulture, out var angle) &&
                        double.TryParse(dataStringParts[1], NumberStyles.Any, CultureInfo.CurrentCulture, out var radius))
                    {
                        // Us unit in meter
                        radius = radius / 10.0;

                        if (!(radius > 0) ||
                            !(angle >= 0))
                        {
                            return;
                        }

                        result.Add(new PolarVector(radius, angle));
                    }
                });

                stopWatch2.Stop();
                Console.WriteLine($@"Call {nameof(GetCurrentVectors)} duration: {stopWatch2.ElapsedMilliseconds}ms");
            }

            return(new ConcurrentHashSet <PolarVector>(result.OrderBy(n => n.AngleDeg)));
        }