我正在尝试使用LINQ替换以下代码..
public List<LineItem> GetEULineItems(PurchaseOrder p)
{
List<LineItem> EULineItems = new List<LineItem>();
foreach (LineItem li in p.OrderForms[0].LineItems)
{
if (li[Constants.ProductSource] != null)
{
if (li[Constants.ProductSource].ToString().Trim() == "EU")
{
EULineItems.Add(li);
}
}
}
return EULineItems;
}
我尝试了这个但是开始例外..
IQueryable<LineItem> EULineItems = p.OrderForms[0].LineItems.AsQueryable().Where(s => s.ProductSource == "EU");
例外: 'System.Linq.IQueryable'不包含'Where'的定义,也没有扩展方法'Where'可以找到接受类型'System.Linq.IQueryable'的第一个参数(你是否缺少using指令或汇编引用?)
答案 0 :(得分:1)
假设您实际上正在使用自定义集合而不是在寻找IQueryable,那么您正在寻找一个IEnumerable,它应该可以直接使用:
IEnumerable<LineItem> EULineItems = p.OrderForms[0]
.LineItems
.Where(s => s.ProductSource == "EU");
(当然,您的代码文件中有using System.Linq
。)