J'ai un objet qui a une propriété qui contient un IEnumerable d'objets. Chaque objet du IEnumerable
a une propriété qui est également IEnumerable
. J'essaye de capturer une plus grande liste de la propriété intérieure. Malheureusement, l'expression lambda que j'utilise renvoie un OrderedEnumerable
. Je voudrais juste récupérer un simple IEnumerable
.Récupère la liste brute de OrderedEnumerable
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;
}
}
}
Utilisation de CustomerFormList
OrgForm of = new OrgForm();
IEnumerable<Machine> machines = of.CustomerFormList
.Select(cf => cf.ActiveMachines);
Modifier
Donc, après avoir incité de Jon Skeet et Mark Byers, je regardais un peu plus profond et a constaté que ActiveMachines avaient été modifiées pour effectuer une OrderBy
alors maintenant le retour d'un OrderedEnumerable
a du sens (mon mauvais pour ne pas lire le jeu de code modifier les commentaires).
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);
}
}
}
Ceci est une grande exception machines
ne me permet pas d'écrire quelque chose comme ceci comme il l'entend chaque élément machines
comme dénombrable en fonction de la catégorie.
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];
}
Que voulez-vous dire par "ne fonctionne pas". Est-ce une erreur de compilation ou une exception lors de l'exécution? Quel message d'erreur obtenez-vous? –
Je ne comprends toujours pas votre question, désolé. Peut-être pourriez-vous essayer de simplifier votre problème pour que le code complet, y compris toutes les classes et fonctions nécessaires, se place sur un écran, et que nous puissions copier et coller le code dans Visual Studio et voir exactement la même erreur. Il manque trop de code pour que je puisse deviner quel pourrait être votre problème. –
Je ne comprends pas l'édition. ActiveMachines renvoie explicitement un IEnumerable, pas un IEnumerable >. Que voulez-vous dire par "ne me permet pas"?Comme Mark l'a dit à l'origine, soyez explicite au sujet de l'erreur ou du bogue que vous voyez. –