Отображение списка массивов без циклов foreach в ASP.NET MVC-3 - PullRequest
0 голосов
/ 18 октября 2011

Я хочу получить список массивов из файла XML.Я использую инструмент интеграции для запросов.Но что мне делать, если я хочу создать список массивов без цикла foreach.(Причина в том, что в этом случае foreach не может применяться.

Формат файла XML:

<arr name="ArrayinXML"><str>dsfadasfsdasda</str><str>gdhsdhshhfb</str>

В Index.cshtml:

@p.ArrayinXML.FirstOrDefault()

В приведенном выше случае возвращается только первое строковое значение, а не второе.

1 Ответ

0 голосов
/ 18 октября 2011

Можете ли вы сделать метод расширения, который будет для вас foreach?

Примерно так:

public static class IEnumerableExtensions
{
    public static string ToString<T>(this IEnumerable<T> collection, string separater)
    {
        if (collection == null)
            return String.Empty;

        return String.Join(separater, collection);
    }
}

Конечно, вы можете просто вызвать @String.Join(p.ArrayinXML, ", ") в своем коде,но я думаю, что метод расширения делает его немного более элегантным.

Затем добавьте пространство имен расширения в ваш web.config, и вы можете сделать это в виде:

@p.ArrayinXML.ToString(", ")

Редактировать:

Вот расширение с параметром преобразования, чтобы вы могли настроить его дальше:

public static string ToString<T>(this IEnumerable<T> collection, string separater, Func<T, object> transform) where T : class
{
    if (collection == null)
        return String.Empty;

    return String.Join(separater, collection.Select(s => transform(s).ToString()));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...