我有一個對象,它具有包含IEnumerable對象的屬性。 IEnumerable
中的每個對象都有一個屬性,該屬性也是IEnumerable
。我試圖捕捉內部財產的更大名單。不幸的是,我正在使用的lambda表達式返回一個OrderedEnumerable
。我想只檢索一個簡單的IEnumerable
。使用CustomerFormList
從OrderedEnumerable獲取原始列表
OrgForm of = new OrgForm();
IEnumerable<Machine> machines = of.CustomerFormList
.Select(cf => cf.ActiveMachines);
public class OrgForm
{
public string OrgNum { get; set; }
public IEnumerable<CustomerForm> CustomerFormList
{
get
{
var list = from cf in OrgCustomerList
where cf.Customer.AssignedOrg == OrgNum
select cf;
return list;
}
}
}
編輯
所以從喬恩斯基特和馬克·拜爾斯提示後,我看了一個更深一點,發現ActiveMachines已被修改爲執行OrderBy
所以現在返回的OrderedEnumerable
是有道理的(我不好意思閱讀代碼集更改註釋)。
public class CustomerForm
{
public IEnumerable<Machine> ActiveMachines
{
get
{
var active = Customer.MachineList.ToList()
.Where(m => "a".Equals(m.MachineStatus)
&& !m.ToReapp);
return active.OrderBy(m => m.MachineCategory);
}
}
}
這是除了machines
偉大不允許我爲它看到每個項目在machines
作爲基於類的枚舉寫這樣的事情。
foreach (KeyValuePair<int, string[]> kvp in trueUpPt)
{
Machine machine = cf.ActiveMachines
.First(m => m.MachineSk == kvp.Key);
machine.MachineLicenseBillback.ProjectNum = kvp.Value[0];
machine.MachineLicenseBillback.TaskNum = kvp.Value[1];
}
你究竟是什麼意思的「不起作用」。在運行時出現編譯時錯誤或異常?你會得到什麼錯誤信息? – 2010-01-27 20:50:46
我還是不明白你的問題,對不起。也許你可以嘗試簡化你的問題,這樣整個代碼包括所有必要的類和函數都可以放在一個屏幕上,並且可以將代碼複製並粘貼到Visual Studio中,並查看你看到的完全相同的錯誤。沒有太多的代碼可以猜測你的問題。 – 2010-01-27 22:16:04
我不理解編輯。 ActiveMachines顯式返回IEnumerable,而不是IEnumerable >。你是什麼意思「不允許我」?就像Mark最初所說的那樣,明確你所看到的錯誤或錯誤。 –
2010-01-27 22:32:24