ここで質問するのが適切かどうかわかりませんが、そうでない場合は申し訳ありません。
以下と同じコードを使用します。
string[] digits = { "zero", "one", "two", "three", "four", "five", 
                    "six", "seven", "eight", "nine" };
var shortDigits = digits.Where((digit, index) => digit.Length < index);
foreach (var sD in shortDigits)
{
    Console.WriteLine(sD);
}
// Output:
// five
// six
// seven
// eight
// nine
digitシステムは、項目が数字でありindex、配列内の位置であることをどのように認識しますか?