如果我想通過集合進行迭代,並調用集合中的每個元素上的功能,我可以去:調用LINQ查詢中的一個函數
foreach (var obj in objColl)
{
MyFunction(obj);
}
如果我想使用LINQ來做到這一點,我可以使用其中的任何一種:
//#1
var unused = (from var obj in objColl select MyFunction(obj)).ToList();
//#2
var unused = objColl.Select(obj => MyFunction(obj)).ToList();
我知道這是有效的,但它看起來不正確。當然,我的實際情況是這樣的更復雜的查詢,但歸結到這一點,因爲我可以用Linq構建我的IQueryable並遍歷它並調用該函數。
編輯: 這是我做的一個例子。 (編號:有些事情我不能透露)
var dummyValue = (from
Item7 in dal.GetAgencyConvertions().Where(age => age.SourceName == "Item1" && age.TargetName == "Item2")
join Item6 in dal.GetAgencyConvertions().Where(age => age.SourceName == "Item2" && age.TargetName == "Item3") on Item6.TargetValue equals Item7.SourceValue
join agency in dal.GetAgencies() on Item7.SourceValue equals agency.Agency
orderby Item7.TargetValue
select vl.ValueListItems.Add(agency.ID, Item7.TargetValue)).ToList();
即使CIL中的結果很可能是相同的,但我仍然會這樣做,只是爲了保持代碼清晰。謝謝。 – Tipx 2010-12-13 20:35:51