У меня есть объект, у которого есть свойство, которое содержит IEnumerable объектов. Каждый объект в IEnumerable
имеет свойство, которое также является IEnumerable
. Я пытаюсь захватить больший список внутреннего свойства. К сожалению, лямбда-выражение, которое я использую, возвращает OrderedEnumerable
. Я хотел бы просто получить простой IEnumerable
.
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;
}
}
}
Использование CustomerFormList
OrgForm of = new OrgForm();
IEnumerable<Machine> machines = of.CustomerFormList
.Select(cf => cf.ActiveMachines);
Редактировать
Итак, после запроса от Джона Скита и Марка Байерса я посмотрел немного глубже и обнаружил, что 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];
}