Одна из возможностей - regexp_replace()
:
select regexp_replace(str, ' [^ ]+ Что полезно в regexp_replace()
, так это то, что вы можете быть более понятными в отношении строк, которые хотите заменить:
select regexp_replace(str, ' (road|rd|street|ave), '')
, '')
from (select 'abcd asdf 90909 ddd' as str from dual) x
Что полезно в regexp_replace()
, так это то, что вы можете быть более понятными в отношении строк, которые хотите заменить:
select regexp_replace(str, ' (road|rd|street|ave), '')
Проблема только происходит когда <System.Runtime.CompilerServices.Extension()>
присутствует. Компилятор VB вводит ограничение, что ограничения должны поддаваться проверке с одним только первым аргументом. Начиная с первого аргумента в пользу дополнительного метода (Dictionary(Of KeyType, ListType)
) иждивенец на третий аргумент (ValueType
) через IList(Of TValue)
ограничение, это не может быть скомпилировано в VB.
Причина объяснена здесь: http://msdn.microsoft.com/en-us/library/bb385206.aspx
Компилятор VB мог бы быть немного более придирчивым в этом случае, потому что он должен поддерживать дополнительные параметры. (Еще) нет никаких дополнительных параметров в C#.
Я подозревал бы, что проблема состоит в том, что Вы использовали ValueType для в качестве названия одного из параметров типа, который является фактическим типом в библиотеке классов.NET (Система. ValueType). Я могу предположить, что C# и VB.NET обрабатывают это по-другому. Попробуйте его другим именем, как TValue (и TKey только, чтобы быть последовательными).