【发布时间】:2014-03-01 22:43:55
【问题描述】:
如何在 linq 语句中增加索引值。
int headIndex = -1;
// int itemIndex = -1;
lst = (from xx in db.vwCustomizationHeaders
where xx.ProductID == pID
select new custHeader()
{
headIndex = headIndex++,// Guid.NewGuid(),
}
【问题讨论】:
-
您的查询在服务器端执行。不用说,您可以修改外部变量是不可思议的。您将必须首先执行查询(
.ToArray()等),然后对其进行迭代以递增。此外,在select子句中修改状态是非常糟糕的做法。 -
那么我应该如何修改不在选择中..?
-
一个
foreach循环(在.ToArray的结果之上)会很好用。 -
即使这是可能的,但事实并非如此,
headIndex = headIndex++到底是什么意思?headIndex++已经意味着“增加headIndex”,那么为什么还要分配给刚刚增加的东西从刚刚增加的东西? -
@NoviceToDotNet:啊,我明白了,您正在使用对象初始化程序来分配具有相同名称的本地字段。 请永远不要这样做。它使代码非常难以阅读。