此代码是用于在数据库中创建关键字记录的数据模型的一部分。
if (_queue
.OrderByDescending(record=>record.Primary)
.GroupBy(record=>record.Term)
.Select(record=>record.First())
.Select(Create)
.Any(result=>result <= 0))
{
throw new ModelException("Failed to create keyword record.");
}虽然我能理解这一点,但我也认为这有点模糊。
这段代码的意图清楚可读性吗?
发布于 2015-01-05 20:44:27
虽然我只会将两个select语句组合在一起并添加一些空格,但还是可以读得很清楚:
if (_queue.OrderByDescending(record => record.Primary)
.GroupBy(record => record.Term)
.Select(record => Create(record.First()))
.Any(result => result <= 0))
{
throw new ModelException("Failed to create keyword record.");
}正如您所看到的,我也倾向于将第一个语句保留在同一行,并缩进下一个语句以与linq语句对齐。
不过,有一点要注意:首先,您正在订购您的记录,然后将它们分组。这是故意做的吗?我假设您希望先分组,然后再排序,这完全是因为您必须订购较少的元素。但话又说回来:如果你先订购,分组可能会更有表现力,所以我不完全确定。
https://codereview.stackexchange.com/questions/75739
复制相似问题