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의 Select를 사용하고 익명으로 형식이 지정된 개체 목록을 만들 수 있어야한다고 생각했습니다.익명 형식을 사용하여보다 간결하게 표현할 수 있습니까?
암시 적으로 입력 된 변수는 할당하지 않고 만들 수 없습니다. 그리고 Switch 문 범위 안에 있기 때문에 ... switch 문 내부에서 var에 할당 할 수없고 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'
전혀 도움이되지 않습니다! 나는 지금 리팩토링 중입니다. 그래서 내가 여기에 있고, 질문하고 배우는 중입니다. –