Я могу пользоваться библиотекой параллели задачи в проекте.Net 3.5?

Вы можете использовать цикл while с str.find, чтобы найти n-е вхождение, если оно существует, и использовать эту позицию для создания новой строки:

def nth_repl(s, sub, repl, nth):
    find = s.find(sub)
    # if find is not p1 we have found at least one match for the substring
    i = find != -1
    # loop util we find the nth or we find no match
    while find != -1 and i != nth:
        # find + 1 means we start at the last match start index + 1
        find = s.find(sub, find + 1)
        i += 1
    # if i  is equal to nth we found nth matches so replace
    if i == nth:
        return s[:find]+repl+s[find + len(sub):]
    return s

Пример:

In [14]: s = "foobarfoofoobarbar"

In [15]: nth_repl(s, "bar","replaced",3)
Out[15]: 'foobarfoofoobarreplaced'

In [16]: nth_repl(s, "foo","replaced",3)
Out[16]: 'foobarfooreplacedbarbar'

In [17]: nth_repl(s, "foo","replaced",5)
Out[17]: 'foobarfoofoobarbar'
45
задан tzaman 9 June 2010 в 14:09
поделиться

2 ответа

(Устаревший ответ - похоже, бэкпорт для 3.5 больше не доступен)

Вы не можете использовать полные параллельные расширения, нет...

... но если вы установите Reactive Extensions для .NET 3.5, то в комплекте с ним идет версия Parallel Extensions, так что вы можете ее использовать. Я не знаю, насколько поддерживается PFX, но подозреваю, что для большинства людей этого достаточно. (Есть некоторые подробности в сообщении в блоге, но это было в 2009 году... Я не знаю о каких-либо изменениях в 2010 году, которые могли быть или не быть перенесены.)

Обратите внимание, что это тоже не поддерживается - возможно, это подходит для хобби-проектов, но если бы я хотел использовать PFX коммерчески, я бы перешел на .NET 4.

.
39
ответ дан 26 November 2019 в 21:24
поделиться

Как отметил Джон Скит, Rx перенес TPL в .NET 3.5.

Я сделал Nuget (называемый TaskParallelLibrary ) из их System.Threading.dll, для более легкой интеграции.

Вы можете получить его из http://nuget.org/packages/TaskParallelLibrary .

25
ответ дан Omer Mor 26 November 2019 в 21:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: