我想Recon
从列表中过滤项目。我想在其列表中获取所有具有属性等于“13”Recon
的对象的对象。Transaction
SrcObjType
Transactions
// The model is like this
public partial class Recon
{
public int ReconNum { get; set; }
public virtual ICollection<Transaction> Transactions { get; set; }
}
public partial class Transaction
{
public long TransactionId { get; set; }
public Nullable<System.DateTime> DocumentDate { get; set; }
public string SrcObjTyp { get; set; }
public virtual Recon Recon { get; set; }
}
// this works for a few items but crashes on large data sets (million rows large)
List<Recon> reconsWithType13Trans = new List<Recon>();
db.Transactions.Where(t => t.SrcObjTyp == "13")
.ToList().ForEach(t => reconsWithType13Trans.Add(t.Recon));
我认为 foreach 正在消耗大量内存,然后程序会引发内存不足异常。
我的问题是如何尽可能有效地过滤这些项目。如果可能的话,不需要太多内存。不使用 foreach 来实现这种过滤还有另一种可能性吗?