Как я могу оптимизировать мою функцию ZIP в C #, чтобы быть быстрее? - PullRequest
0 голосов
/ 18 июня 2019

Как я могу оптимизировать "findelements" и "tolist" части моего кода для более быстрой работы? Я делаю список заголовков полей и список его значений с помощью cssselectors, архивирую их и добавляю в свою базу данных. Это самая медленная часть моей программы, и мне было интересно, как я могу ускорить этот процесс. Пожалуйста, помогите спасибо <3 </p>

    public static void zipper()
    {
        //Database connection
        MongoClient dbClient = new MongoClient(mongoinfo);
        var db = dbClient.GetDatabase("TestDB");
        var collec = db.GetCollection<BsonDocument>("TestDB");

        //Zip editList
        foreach (var item in editList)
        {

            //Console.WriteLine(newURL);
            driver.Navigate().GoToUrl(item);

            IList<String> keys = new List<string>();
            IList<IWebElement> keyList = 
            driver.FindElements(By.CssSelector("td.Field.box"))
            .ToList();
            foreach (IWebElement key in keyList)
            {
                if (key.Text != " Person authorizing adjustment")
                {
                    keys.Add(key.Text.TrimStart(' '));
                }
            }
            IList<String> vals = new List<string>();
            IList<IWebElement> valList = 
            driver.FindElements(By.CssSelector("td.Data.box"))
            .ToList();
            foreach (IWebElement val in valList)
            {
                vals.Add(val.Text);
            }

            int keynum = keys.Count();
            Console.WriteLine(keynum);
            int valnum = vals.Count();
            Console.WriteLine(valnum);
            var keysAndVals = keys.Zip(vals, (first,second) => 
            first+":"+second);
            IList<String> kv = keysAndVals.ToList();
            BsonArray bArray = new BsonArray();
            foreach (var term in kv)
            {
                Console.WriteLine(term);
                bArray.Add(term);
            }
            var document = new BsonDocument();

            document.Add("TestDB", bArray);
            collec.InsertOneAsync(document);
        }
    }

Есть ли неявные ожидания, которые я могу использовать? или мне не хватает async / await, который нужно где-то использовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...