6
我有一個2類feeds_Auto和產品具有多個匹配屬性。對於這個特定的問題,AutoID是我需要使用的唯一字段。C#列表<object> .RemoveAll() - 如何刪除列表的子集?
我有一個List<FeedsAuto>
與幾百獨特的條目。我有一個小的List<Product>
與10,20 獨特的條目。我現在想從大列表中刪除小列表中的所有項目。
如何使用RemoveAll({lambda表達式})來完成此操作?我發現的所有例子都取決於簡單類型(字符串,整數等)的通用列表。
private static int DoInserts(ref List<Model.feeds_Auto> source, ref List<Model.Product> target, Guid companyID)
{
List<Model.Product> newProductList = new List<Model.Product>();
List<Model.Product> dropSourceList = new List<Model.Product>();
using (var db = Helpers.GetProdDB())
{
foreach (var src in source)
{
var tgt = target.Where(a => a.alternateProductID == src.AutoID && a.LastFeedUpdate < src.DateModified).FirstOrDefault();
if (tgt == null)
{
newProductList.Add(new Model.Product{...});
dropSourceList.Add(src);
}
}
db.SaveChanges();
if (dropSourceList.Count > 0)
{
source.RemoveAll(????);
}
}
}
在循環中做到這一點並不難:
foreach (var drop in dropSourceList)
{
source.RemoveAll(a => a.AutoID == drop.AutoID);
}
這只是沒有任何意義(我)到環上的一組調用的removeAll在每個通一個項目。
謝謝!光滑,所有出去。哦,還有很多東西要學習正確使用Lambdas。 :) –