内存不足c#List<>

时间:2018-04-09 03:17:57

标签: c# list out-of-memory

我使用List<>从数据库存储数据调用以在printdocument中打印。 但是当行超过300时,会发生 OutOfMemoryException 。 清除记忆的任何解决方案?或任何其他方法将数据添加到列表?

private List<FormName> printItem = new List<FormName>();
public string printItemCode;
public string printPartNo;
public string printIssued;
public string printUOM;

//call from database
using (var rdr = cmd.ExecuteReader())
{
    while (rdr.Read())
    {
        FormName item = new FormName()
        {
            printItemCode = rdr[0].ToString(),
            printPartNo = rdr[1].ToString(),
            printIssued = rdr[2].ToString(),
            printUOM = rdr[3].ToString(),
        };

        printItem.Add(item);
    }
}

1 个答案:

答案 0 :(得分:0)

通过使用类而不是FormName解决了问题。

private List<Items> printItem = new List<Items>();

class Items
{
    public string printItemCode { get; set; }
    public string printPartNo { get; set; }
    public string printIssued { get; set; }
    public string printUOM { get; set; }
}


using (var rdr = cmd.ExecuteReader())
{
    while (rdr.Read())
    {
        Items item = new Items()
        {
            printItemCode = rdr[0].ToString(),
            printPartNo = rdr[1].ToString(),
            printIssued = rdr[2].ToString(),
            printUOM = rdr[3].ToString(),
        };

        printItem.Add(item);
    }
}