I have a List of anonymous types List<'a>, a' is new {OptionSetValue servingTime, OptionSetValue servingGroup, string servingClass, string desc, string childName, Guid childId, EntityReference item, OptionSetValue type, Guid sensitivity}
I have constructed such a list inside a foreach statement and need to add the list to another list of the same type from outside the for loop (groupedAllergies). Obviously what I wrote would not work as object does not contain a definition for the anonymous types I am trying to access. How can I remedy this?!
var groupedAllergies = new List<object>(); <--- problem
foreach (var line in items)
{
OptionSetValue servingTime = line.servingTime;
OptionSetValue servingGroup = line.servingGroup;
string servingClass = line.servingClass;
string desc = line.desc;
string childName = line.childName;
Guid childId = line.childId;
Guid sensitivity = line.sensitivity;
var queryAllergyItems = groupAllergies.Where(e => e.servingClass == servingClass
&& e.servingTime == servingTime
&& e.servingGroup == servingGroup
&& e.desc == desc
&& e.allergies.Intersect(allergies).Any()).Select(r => new
{
r.item,
r.type,
r.allergies
}).ToList();
var items = queryAllergyItems.Select(r => new
{
servingTime,
servingGroup,
servingClass,
desc,
childName,
childId,
r.item,
r.type,
sensitivity = r.allergies.Intersect(allergies).First()
}).ToList();
items.ForEach(e => groupedAllergies.Add(e));
}
foreach(var allergy in groupedAllergies)
{
var servingTime = allergy.servingTime;
//object doesn't have definition for servingTime!!
}
Is this a valid solution?!
var o = new { servingTime = new OptionSetValue(), servingGroup = new OptionSetValue(), servingClass = "", desc = "", childName = "", childId = new Guid(), item = new EntityReference(), type = new OptionSetValue(), sensitivity = new Guid() };
var groupedAllergies = new[] { o }.ToList();
groupedAllergies.Clear();