List.Generate

Sözdizimi

List.Generate(initial as function, condition as function, next as function, optional selector as nullable function) as list

Hakkında

Sağlanan işlevleri kullanarak değerlerin listesini oluşturur. initial işlevi, daha sonra ile conditiontest edilen bir başlangıç adayı değeri oluşturur. Aday değeri onaylanırsa, sonuçta elde edilen listenin bir parçası olarak döndürülür ve yeni onaylanan değer öğesine nextgeçirilerek bir sonraki aday değeri oluşturulur. Bir aday değeri ile eşleşemediğinde condition, liste oluşturma işlemi durdurulur. Sonuç listesindeki öğeleri dönüştürmek için isteğe bağlı bir parametresi selectorde sağlanabilir.

Örnek 1

On'dan başlayarak, bir art arda azalarak ve her öğenin sıfırdan büyük olduğundan emin olarak bir liste oluşturun.

Kullanım

List.Generate(() => 10, each _ > 0, each _ - 1)

Çıkış

{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}

Örnek 2

x ve y içeren kayıtların listesini oluşturun; burada x bir değer, y bir listedir. x değeri 10'dan az kalmalı ve y listesindeki öğe sayısını göstermelidir. Liste oluşturulduktan sonra yalnızca x değerlerini döndürür.

Kullanım

List.Generate(
    () => [x = 1, y = {}],
    each [x] < 10,
    each [x = List.Count([y]), y = [y] & {x}],
    each [x]
)

Çıkış

{1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}