我在另一个帖子上发现了这个代码片断,我不太明白,并且会解释某人。奇怪的内联数组初始化
private bool[] GetPageNumbersToLink(IPagedResult result)
{
if (result.TotalPages <= 9)
return new bool[result.TotalPages + 1].Select(b => true).ToArray();
...
C# Array initialization - with non-default value
我取在此:
new bool[result.TotalPages + 1]
这产生的bool与长度的数组等于总页数的,缺省值是在所有这些假的。
.Select(b => true)
此使用LINQ查询只返回为真品,也就是他们没有
.ToArray();
LINQ返回的IEnumerable类的东西,所以它需要回到一个新的阵列中,长度为0,因为首先没有选择。
我认为这就是它在做什么,但它没有任何意义。
一个人有时会因单词'Select'而感到困惑,因为它听起来像:**“过滤器”**来源(不过那叫做“Where”);实际上这意味着:**“项目”**的来源。 – 2014-11-13 19:59:38