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>()
Но если вас волнует оптимизация, то подумайте лучше над самим методом парсинга.