C # самая высокая строка - PullRequest
3 голосов
/ 04 декабря 2009

Это кажется таким банальным, но я не нахожу ответа в Google.

Я следую за большим значением строки для семафора в конце отсортированного списка строк.

Мне кажется, что char.highest.ToString () должен это делать - но это сравнивает низкий, а не высокий.

Очевидно, что на самом деле невозможно создать максимально возможную строку, потому что она всегда будет ниже, чем та же самая вещь + больше данных, но строки, которые я сортирую, являются допустимыми путями, и поэтому используемые символы ограничены.

В ответ на комментарии:

В дни до Юникода в Delphi я бы просто использовал # 255. Я просто хочу строку, которая будет сравниваться выше, чем любое возможное имя пути. Это должно быть тривиально - почему бы и нет ??

Ответ № 2:

Это не сортировка, которая требует стража, а обработка позже. У меня есть несколько списков, которые я как бы объединяю (упрощенное объединение не справится с работой.), Или я дублирую код, или у меня есть фиктивные значения, которые всегда сравниваются.

Ответы [ 3 ]

4 голосов
/ 04 декабря 2009

Строковое представление самого старшего символа будет иметь длину только один символ.

Почему бы вам просто не добавить его в качестве семафора после сортировки, вместо того, чтобы пытаться сделать его тем, что потом будет сортировать?

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

3 голосов
/ 15 марта 2011

У меня была такая же проблема при попытке поместить нулевые значения внизу списка в операторе LINQ OrderBy(). Я закончил тем, что использовал ...

Char.ConvertFromUtf32(0x10ffff)

... который работал угощение.

0 голосов
/ 04 декабря 2009

Как то так?

public static String Highest(this String value)
{
    Char highest = '\0';
    foreach (Char c in value)
    {
        highest = Math.Max(c, highest); 
    }
    return new String(new Char[] { highest });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...