4
内临时变量我有类似下面这样的LINQ声明:匿名类型
var entities = from row in table.AsEnumerable()
select new
{
ID = row.ID,
X = GetObjectByProcessingID(row.ID)[0],
Y = GetObjectByProcessingID(row.ID)[1],
....
};
是否可以做这样的事情:
var entities = from row in table.AsEnumerable()
select new
{
private var tmp = GetObjectByProcessingID(row.ID),
ID = row.ID,
X = tmp[0],
Y = tmp[1],
....
};
为了避免调用GetObjectByProcessingID两次?
我知道你可以这样做:
var entities = from row in table.AsEnumerable()
select new
{
ID = row.ID,
XAndY = GetObjectByProcessingID(row.ID),
....
};
但在这种情况下,它会暴露整个阵列。我也知道,我可以在方法一侧(GetObjectByProcessingID)实现像缓存这样的东西,或者创建一个帮助器方法来调用它,并记住ID是否相同的最后一个值。但是有更好的方法吗?我可以在创建匿名类型时创建临时变量吗?