Birden çok eşleme özelliğine sahip 2 sınıf feeds_Auto ve Ürün var. Bu sorun için, kullanmam gereken tek alan AutoID'dir.C# Liste <object> .RemoveAll() - Listenin bir alt kümesi nasıl kaldırılır?
ile birkaç yüz benzersiz girişleri var. 10, 20 ile benzersiz girişleri ile küçük bir List<Product>
var. Şimdi küçük listedeki tüm öğeleri büyük listeden kaldırmak istiyorum.
Bunu yapmak için RemoveAll'i ({lambda expression}) nasıl kullanırım? Bulduğum tüm örnekler, jenerik listenin basit türlere (dizgiler, inters, vb.) Bağlı olduğuna inanıyor.
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(????);
}
}
}
bir döngü içinde Bunu yapmak için zor değildir:
foreach (var drop in dropSourceList)
{
source.RemoveAll(a => a.AutoID == drop.AutoID);
}
Sadece her geçişte bir öğe için removeAll aramak için bir sette döngü (bana) mantıklı değil.
Teşekkür! Hepsi dışarı çıkarken kaygan. Oh hala Lambdas'ı doğru kullanmayı öğrenmek için. :) –