Каков наилучший способ узнать, является ли строка длинной или Guid? - PullRequest
1 голос
/ 02 февраля 2012

У меня есть несколько строк в текстовых файлах, представляющих идентификаторы объектов, иногда идентификатор является длинным, а другой - Guid, и мне нужно их проанализировать.

Быстрый ответ очевиден, например, попытка разобрать Guid, а если он не удастся, попытаться разобрать long, но. Есть ли хороший способ ( элегантное решение ), чтобы узнать, является ли определенная строка длинной или Guid?

  ee02b525-9755-4a07-a46d-37bb5b060fd2 (Guid)
  -48765 (long)

Заранее спасибо.

1 Ответ

14 голосов
/ 02 февраля 2012

Быстрый ответ очевиден, например, попытка разобрать Guid и его если не получится попробуйте разобрать долго, но. Есть ли хороший способ (элегантный решение) узнать, является ли определенная строка длинной или Guid?

Нет. long.TryParse и Guid.TryParse - это путь. Другая возможность - проверить, содержит ли строка -, но не в начале:

someString.IndexOf("-") > 1

Это явный признак того, что эта строка не является Int64. Это может быть Guid. Но это может быть что-то еще. Конечно, если вы знаете, что в этом файле могут быть только гиды и лонги, это может быть серьезным признаком.

...