C# IEnumerable <Объект> представить в виде строки

Я работал по полю поиска, которое показывает автоматическое заполнение согласно обработанным ключевым словам. Когда я не захочу нажимать по любой опции тогда, я буду использовать ниже кода для сокрытия обработанного списка, и это работает.

$(document).click(function() {
 $('#suggestion-box').html("");
});

Ящик для предложений является моим контейнером автоматического заполнения, где я показываю значения.

6
задан Chris 19 November 2014 в 17:14
поделиться

4 ответа

Вот так:

Log(String.Join(", ", myArray.Select(o => o.ToString()).ToArray()));

Обновление:

Из структуры 4 метод Join также может принимать IEnumerable , поэтому вы не нужен ToArray :

Log(String.Join(", ", myArray.Select(o => o.ToString())));
20
ответ дан 8 December 2019 в 04:09
поделиться

MoreLINQ имеет метод ToDelimitedString для этой цели.

Он использует StringBuilder вместо использования String. Присоединяйтесь к (насколько я помню из предыдущих вопросов, эффективность обоих подходов сильно зависит от вводимых данных), но это достаточно просто. Вот основной код (есть пара оболочек, позволяющих использовать разделитель по умолчанию):

private static string ToDelimitedStringImpl<TSource>
    (IEnumerable<TSource> source, string delimiter)
{
    Debug.Assert(source != null);
    Debug.Assert(delimiter != null);

    var sb = new StringBuilder();

    foreach (var value in source)
    {
        if (sb.Length > 0) sb.Append(delimiter);
        sb.Append(value);
    }

    return sb.ToString();
}
3
ответ дан 8 December 2019 в 04:09
поделиться

Я регулярно использую ...

String.Join(", ", Array.ConvertAll<object, string>(myArray, Convert.ToString))
2
ответ дан 8 December 2019 в 04:09
поделиться

Простой старомодный способ:

string myString = "";
foreach(Object o in myArray)
    myString += o.ToString() + ", ";
// Remove the extra comma
if(myString.Length >=2)
    myString.Remove(myString.Length - 2);
1
ответ дан 8 December 2019 в 04:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: