c# - 在 C# 中将对象 T 转换为 List<T>

标签 c# .net generics collections casting

我有一个关于转换类型的愚蠢但令人费解的问题。正如您从代码中看到的那样,我有一个变量 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/

相关文章:

java - 如何引用子类作为类型参数?

javascript - BAD Reuqest 无法创建和填充列表类型 Microsoft.AspNetCore.Http.IFormFileCollection

c# 运算符 !不能申请

c# - 客户端WebSocket "The remote party closed the WebSocket connection without completing the close handshake."

.net - 我的 ASP.NET session 太大了吗?

c# - 不使用辅助函数的回文递归?

c# - WCF 客户端 : First call fails, 第二次调用成功

c# - 我应该从发布目录中清除 *.vshost.exe 和 *.vshost.exe.config 吗?

c# - 将类型描述符添加到所有 List<T> 以实现属性网格扩展的通用实现?

c# - 将对象转换到 T