Индексатор как часть интерфейса в C#

import itertools
def chunks(iterable,size):
    it = iter(iterable)
    chunk = tuple(itertools.islice(it,size))
    while chunk:
        yield chunk
        chunk = tuple(itertools.islice(it,size))

# though this will throw ValueError if the length of ints
# isn't a multiple of four:
for x1,x2,x3,x4 in chunks(ints,4):
    foo += x1 + x2 + x3 + x4

for chunk in chunks(ints,4):
    foo += sum(chunk)

Иначе:

import itertools
def chunks2(iterable,size,filler=None):
    it = itertools.chain(iterable,itertools.repeat(filler,size-1))
    chunk = tuple(itertools.islice(it,size))
    while len(chunk) == size:
        yield chunk
        chunk = tuple(itertools.islice(it,size))

# x2, x3 and x4 could get the value 0 if the length is not
# a multiple of 4.
for x1,x2,x3,x4 in chunks2(ints,4,0):
    foo += x1 + x2 + x3 + x4
7
задан Dinah 3 August 2009 в 17:14
поделиться

3 ответа

public interface IYourList<T>
    {
        T this[int index] { get; set; }
    }
20
ответ дан 6 December 2019 в 06:14
поделиться

Это ... это довольно странный синтаксис в другое время, если вы спросите меня! Но это работает. Вы должны объявить его части get; и / или ; без определения, только с точкой с запятой, точно так же, как обычные свойства в интерфейсе.

5
ответ дан 6 December 2019 в 06:14
поделиться

Я знаю, что вы имеете в виду, но да, это верно. Вот документы .

4
ответ дан 6 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

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