switch(ID)
{
case "CustomReportsContainer":
foreach (var report in SessionRepository.Instance.CustomReports.ToList())
{
var reportItem = new RadListBoxItem(report.Name, report.ID.ToString());
if (!Items.Any(item => int.Equals(item.Value, reportItem.Value)))
{
Items.Add(reportItem);
}
}
break;
case "HistoricalReportsContainer":
foreach (var report in SessionRepository.Instance.HistoricalReports.ToList())
{
var reportItem = new RadListBoxItem(report.Name, report.ID.ToString());
if (!Items.Any(item => int.Equals(item.Value, reportItem.Value)))
{
Items.Add(reportItem);
}
}
break;
}
HistoricalReports и CustomReports являются коллекциями разных типов, но меня интересуют одни и те же два свойства от каждого типа объекта.Я подумал, что смогу использовать LINQ's Select и создать список объектов с анонимным типом.
Хотя я не могу создать неявно типизированную переменную без ее назначения.И поскольку я нахожусь внутри области действия оператора Switch ... я не могу назначить переменную var внутри оператора switch, а затем переместить остальную часть кода за пределы оператора switch.
Как мне выразитьэтот код?Является ли текущая реализация «лучшей»?
Тьфу, близко.Могу ли я что-нибудь сделать с этим?Это через наш API, поэтому я не могу изменить глубже.
ReportServices.GetAllCustomReports().Select(report => new { report.Name, report.ID} ).ToList().ForEach(customReport => _customReports.Add(customReport));
Error 2 Argument 1: cannot convert from 'AnonymousType#1' to 'CableSolve.Web.Dashboard.IReport'