我有一个关于转换类型的愚蠢但令人费解的问题。正如您从代码中看到的那样,我有一个变量 lprod_monthylReport 根据 ytm 值可以是 List<Monthly_Report>
或者只是一个 Monthly_Report
.在这两种情况下,我都需要变量具有相同的名称。
var lprod_monthlyReport = new List<Monthly_Report>;
if (ytm == true)
{
lprod_monthlyReport = _ProductRep.GetSpecificArchiveReport(prod.Prod_ID, lmonth, lyear, item.item_ID);
}
else
lprod_monthlyReport = _ProductRep.GetSpecificYTMReport(prod.Prod_ID, item.item_ID);
问题是,如果我在每个 if(或 else)部分中声明变量,编译器会给出错误,因为它说该变量已在此上下文中声明。
我已经试过了
lprod_monthlyReport = (Monthly_Report) _ProductRep.GetSpecificArchiveReport(prod.Prod_ID, lmonth, lyear, item.Item_ID);
但它不起作用。我也尝试了 as 关键字但没有成功。
你能帮我解决这个问题吗?谢谢
弗朗西斯科
最佳答案
这应该有效:
如果您有一份 Monthly_Report
,只需将其添加到列表中...
List<Monthly_Report> lprod_monthlyReport;
if (ytm == true)
{
lprod_monthlyReport = new List<Monthly_Report>();
lprod_monthlyReport.add(_ProductRep.GetSpecificArchiveReport(prod.Prod_ID, lmonth, lyear, item.item_ID));
}
else{
lprod_monthlyReport = _ProductRep.GetSpecificYTMReport(prod.Prod_ID, item.item_ID));
}
关于c# - 在 C# 中将对象 T 转换为 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5663556/