0
什麼是這個速記或我不應該這樣做? 我打電話檢查方法嗎?有條件新對象分配?
bool assign=value;
objectsList = from o in objects select new {
id=o.id,
name=o.name or "" (if assign==false),
}
什麼是這個速記或我不應該這樣做? 我打電話檢查方法嗎?有條件新對象分配?
bool assign=value;
objectsList = from o in objects select new {
id=o.id,
name=o.name or "" (if assign==false),
}
bool assign=value;
var objectsList = from o in objects select new
{
id = o.id,
name = assign ? o.name : String.Empty
};
你的意思是這樣的:
bool assign=value;
var objectsList = from o in objects select new {
id=o.id,
name=(assign ? o.name : String.Empty)
};
PS:警惕延遲執行的 - 檢查分配在你使用它,而不是點在聲明SELECT語句會發生。
好點,但你可以更一般。無論「對象」是否爲IQueryable,都會使用該檢查。 「objectsList」只是一個表示查詢的對象;它不會執行,直到你做了一些讓它運行的東西。因此,在投影期間執行檢查將始終發生,使用當時在「分配」中發生的任何值。 – 2009-12-12 16:24:07
即使IEnumerable執行Select,我也沒有意識到發生了這種情況。我做了一些測試,你肯定是對的。感謝您的高舉。 – fyjham 2009-12-13 00:18:18