Как бы я сделал этот код более эффективным с помощью linq
How would I make this code more efficient using Linq
Что я уже пробовал:
//Get all incidents List < DataRow > Incidents = rm.getData(Token, "incdet").Tables["Client Data"].AsEnumerable().ToList(); //get incidents that fall between a date range var appointmentNoShow = from a in Incidents where (Convert.ToDateTime(a["dateinc"].ToString()) >= firstDayOfMonth && Convert.ToDateTime(a["dateinc"].ToString()) <= lastDayOfMonth) select a; //get all injuries List<DataRow> injuries = rm.getData(Token, "incemp").Tables["Client Data"].AsEnumerable().ToList(); //put injuries that match incidents in date range into list var result = injuries.Where(p => Incidents.Any(p2 => p2["incid"].ToString() == p["incid"].ToString())); // check if injuries have specific code add to list foreach (var item in result) { if (item["consqce"].ToString() == "107547" || item["consqce"].ToString() == "107548" || item["consqce"].ToString() == "107549") { IncidentRecord r = new IncidentRecord(); r.ID = item["incid"].ToString(); //r.Date = item["dateinc"].ToString(); QualifyingList.Add(r); } } //select The incident that match the incident ids in the QualifyingList to get the dates var injuriesForMonth = Incidents.Where(p => QualifyingList.Any(p2 => p2.ID == p["incid"].ToString()));
F-ES Sitecore
Что вы подразумеваете под эффективностью? LINQ сделает ваш код медленнее, так что если под эффективным вы подразумеваете "быстрее", то я бы оставил его как есть.