C# CefSharp переделать кусочек кода не используя string.Join

Код ниже перебирает все ссылки на странице и выводит их в текстбокс

string script = @"(function()
                        {
                            var linksArray = new Array();
                            for (var i = 0; i < document.links.length; i++)
                            {
                                linksArray[i] = [String(document.links[i].innerHTML),
                                        String(document.links[i].innerText),
                                        String(document.links[i].href)];
                            }
                            return linksArray;
                        })();";
            var task = chrome.EvaluateScriptAsync(script);
            task.ContinueWith(x =>
            {
                var response = x.Result;
                if (response.Success && response.Result != null)
                {
                    var list = (List<object>)response.Result;
                    string s = "";
                    foreach (List<object> item in list)
                    {
                        s = string.Join("\n", item.Select(item1 => $"{item1}"));
                            textHtml.Text += s + Environment.NewLine;
                    }
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());

Как переделать строку кода (см. ниже)

s = string.Join("\n", item.Select(item1 => $"{item1}"));

используя обычные foreach, if и т.д. пусть даже код будет длинным, главное не использовать "string.Join" и другие продвинутые темы.


Ответы (1 шт):

Автор решения: YD359

Если вопрос только в написании аналога Join, то это, конечно, возможно, но есть ли в этом смысл для вашей программы? Вот я вам пример набросал:

string LikeJoin(string separator, string[] arr) {
   var sb = new StringBuilder();
   int len = arr.Length;
   for (int i=0; i<len; i++) {
      sb.Append(arr[i]);
      if (i != len - 1) 
         sb.Append(separator);
   }
   return sb.ToString();
}

Так же Select с интерполяцией можно заменить на Cast

item.Cast<string>()

Но если вас волнует оптимизация, то подумайте лучше над самим методом парсинга.

→ Ссылка