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是否相同的最後一個值。但是有更好的方法嗎?我可以在創建匿名類型時創建臨時變量嗎?