Orderby C # строковая запись

Для простого документа phpseclib, чистой реализации PHP SFTP.

См. следующую ссылку:

Загрузка файлов через SFTP с использованием PHP

Структура папок:

Main Folder->
    my-files(Contain File Which Transfer To Remote Server)
    phpseclib0.3.0
    sftp.php

1
задан Krishneil 18 March 2019 в 00:35
поделиться

4 ответа

Это немного запутанно, да.

Все, что нам нужно сделать, это выбрать SiteCode в виде строки, отсортировать по OrderBy, а затем объединить результаты. Поскольку у String::Join есть вариант, который работает с IEnumerable<string>, нам не нужно преобразовывать массив в середину.

В результате мы получаем единственное утверждение для присвоения вашему члену SiteDetails:

result.SiteDetails = string.Join(", ", 
    result.Sites
    .Select(x => $"{ICMSRepository.Instance.GetSiteInformationById(x.SiteInformationId).SiteCode}")
    .OrderBy(x => x)
);

(или вы можете использовать .ToString() вместо $"{...}")


Это общий процесс для большинства преобразований в LINQ. Выясните, каковы ваши входные данные, что вам нужно с ними делать и как должны выглядеть выходные данные.

Если вы используете LINQ, нечасто, что вам придется создавать и управлять списками посредников, если вы не делаете что-то довольно сложное. Для простых задач, таких как сортировка последовательности значений, почти никогда нет причин помещать их в переходные коллекции, поскольку инфраструктура обрабатывает все это за вас.

И самое приятное, что он один раз перечисляет коллекцию, чтобы получить полный набор данных. Больше нет циклов, чтобы извлечь данные, затем обработать, а затем перестроить.

0
ответ дан Corey 18 March 2019 в 00:35
поделиться

Одна вещь, которая улучшит производительность, это избавиться от .ToList() и .ToString. В этом нет необходимости, просто нужно потратить дополнительное время на обработку и память.

0
ответ дан Scott Chamberlain 18 March 2019 в 00:35
поделиться

Я бы использовал SortedList , но я не думаю, что это сильно повлияет на производительность, просто, вероятно, будет легче читать.

0
ответ дан Miguel Mateo 18 March 2019 в 00:35
поделиться

Придерживайтесь ответа Кори, который является вариантом, но я подумал, что предложу немного более четкий способ выразить запрос:

result.SiteDetails =
    String.Join(", ",
        from x in result.Sites
        let sc = ICMSRepository.Instance.GetSiteInformationById(x.SiteInformationId).SiteCode
        orderby sc
        select sc);
0
ответ дан Enigmativity 18 March 2019 в 00:35
поделиться
Другие вопросы по тегам:

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