Вы можете использовать отложенное связывание GWT с помощью замены и создать две реализации вашего класса, в которых вы используете регулярное выражение.
Например, давайте предположим, что ваш класс называется Parser
и содержит код для всех веб-браузеров, кроме IE7. Затем вы можете расширить Parser
и создать ParserIE7
класс для IE7. Затем в конфигурационном файле вашего модуля GWT вы можете добавить:
Затем, вызвав
Parser parser = GWT.create(Parser.class);
, вы должны иметь правильную (зависящую от веб-браузера) реализацию Parser
в parser
переменная.
Вы можете найти более подробную информацию здесь .
string[] foo = nonLetters.Select(c => c.ToString()).ToArray();
Если вы на самом деле не заботитесь об использовании String.Join, а хотите только результат, использование новой строки (char []) является самым простым изменением:
string message = "This is a test message.";
var nonLetters = message.Where(x => !Char.IsLetter(x));
Console.WriteLine("There are {0} non-characters in \"{1}\" and they are: {2}",
nonLetters.Count(),
message,
new string(nonLetters.ToArray()));
но для вашего примера это более эффективно, если вы сделаете это следующим образом:
string message = "This is a test message.";
string nonLetters = new string(message.Where(x => !Char.IsLetter(x)).ToArray());
Console.WriteLine("There are {0} non-characters in \"{1}\" and they are: {2}",
nonLetters.Length,
message,
nonLetters);
Причина, по которой это более эффективно, заключается в том, что другой пример повторяет ваш итератор where дважды: один раз для вызова Count () и в другой раз для вызова ToArray ().
Думаю, вы хотите:
string message = "This is a test message.";
var nonLetters = message.Where(x => !Char.IsLetter(x));
Console.WriteLine("There are {0} non-characters in \"{1}\" and they are: {2}",
nonLetters.Count(),
message,
String.Join(", ", nonLetters.Select(x => x.ToString()).ToArray())
);
All I ' Все сделано, это вызов Select (x => x.ToString ())
для nonLetters в вызове String.Join. Кажется, работает.
string result = new string(nonLetters.ToArray()); //convert to a string
Я только что понял, что вам нужна строка [], а не строка:
string[] result = nonLetters.Select(c => new string(new[] { c })).ToArray();
Противно. Но работает ...
Просто выберите String вместо Char для каждой небуквы.
String() nonLetters = message.Where(x => !Char.IsLetter(x))
.Select(x => x.ToString())
.ToArray();