Сравнение строк без учета регистра в F # - PullRequest
6 голосов
/ 20 декабря 2009

Существует ли синтаксически более чистый способ для предварительной обработки сравнения строк без учета регистра в F #, чем следующий

System.String.Equals("test", "TeSt", System.StringComparison.CurrentCultureIgnoreCase)

Ответы [ 3 ]

9 голосов
/ 21 декабря 2009

Также вы можете использовать Расширения типа F # Механика:

> type System.String with
-   member s1.icompare(s2: string) =
-     System.String.Equals(s1, s2, System.StringComparison.CurrentCultureIgnoreCase);;
> "test".icompare "tEst";;
val it : bool = true
3 голосов
/ 20 декабря 2009

Как насчет написания метода расширения, чтобы сделать это короче.

0 голосов
/ 03 июня 2015

Для любого заинтересованного, частичный активный шаблон для этого:

let (|InvariantEqualI|_|) (str:string) arg = 
  if String.Compare(str, arg, StringComparison.InvariantCultureIgnoreCase) = 0
  then Some() else None
let (|OrdinalEqualI|_|) (str:string) arg = 
  if String.Compare(str, arg, StringComparison.OrdinalIgnoreCase) = 0
  then Some() else None
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...