Каков самый впечатляющий оператор LINQ, с которым Вы столкнулись?

Вы проходите только часть list, как указано в условии for:

for(int k = 0; k<=count; k++)
               ^--here--^

Это потому, что count имеет меньшее значение, чем длина исходного массива. Измените это условие, чтобы пройти весь массив:

for(int k = 0; k<list.length; k++)
7
задан Andrew Eisenberg 4 May 2012 в 03:33
поделиться

3 ответа

Я сомневаюсь, что существует что-либо для положения во главе трассировщика лучей. Я довольно люблю свое выражение Mandelbrot хотя:

from row in Enumerable.Range(0, ImageHeight)
from col in Enumerable.Range(0, ImageWidth)
// Work out the initial complex value from the row and column
let c = new Complex((col * SampleWidth) / ImageWidth + OffsetX,
                    (row * SampleHeight) / ImageHeight + OffsetY)
// Work out the number of iterations
select Generate(c, x => x * x + c).TakeWhile(x => x.SquareLength < 4)
                                  .Take(MaxIterations)
                                  .Count() into count
// Map that to an appropriate byte value
select (byte)(count == MaxIterations ? 0 : (count % 255) + 1); 
6
ответ дан 6 December 2019 в 19:42
поделиться

Mads Torgersen демонстрирует, как записать автономное рекурсивное лямбда-выражение в LINQ для вычисления (например). факториал:

i => new Func<Func<int,int>,Func<int,int>>(fac => x => x == 0 ? 1 : x * fac(x
- 1))(new SelfApplicable<Func<Func<Func<int,int>,Func<int,int>>,Func<int,int>
>>(y => f => x => f(y(y)(f))(x))(y => f => x => f(y(y)(f))(x))(fac => x => x
== 0 ? 1 : x * fac(x - 1)))(i)

Mads отмечает:

Я не могу даже выяснить, как к разрыву строки это так, чтобы это приблизилось читаемый, таким образом, я не имею.

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

Назовите меня сумасшедшим, но я - большой поклонник удобочитаемости - таким образом, я склонен просто иметь последовательность individually-innocent-looking выражений, которые я затем комбинирую. Конечно, это зависит, как Вы определяете LINQ: если Вы имеете в виду синтаксис запроса в C#, то я не склонен идти за борт..., но если Вы имеете в виду метапрограммирование (т.е. код C#, который создает выражение LINQ), у меня есть несколько хороших примеров:

2
ответ дан 6 December 2019 в 19:42
поделиться
Другие вопросы по тегам:

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