在 C# 中使用 linq 过滤列表中的列表
Filter a list within a list using linq in C#
我想使用 Linq 过滤 C# 列表中的列表
var catalogs = await _context.MerchantCatalogs
.Include(x => x.merchantDiscounts)
.ToListAsync();
我有一个商品列表,里面有一个折扣列表,我需要获取特定用户的折扣
MerchantCatalogs 有一个名为 discount 的字段,它的折扣类型为 (1,2)
我只需要在类型为 2
的列表中获得折扣
public class MerchantCatalogs
{
int ID;
public ICollection<MerchantDiscount> merchantDiscounts { get; set; }
}
public class MerchantDiscount
{
int id;
int type;
}
如何获取内部列表为 MerchantDiscount = 1 的列表
尝试使用 Where 子句过滤结果:
var catalogs = await _context.MerchantCatalogs
.Include(x => x.merchantDiscounts.Where(discount => discount.type == 2))
.ToListAsync();
如果您只想要有任何类型 2 折扣的商家
var catalogs = await _context.MerchantCatalogs
.Include(x => x.merchantDiscounts.Where(discount => discount.type == 2))
.Where(merchant=> merchant.merchantDiscounts.Any())
.ToListAsync();
我想使用 Linq 过滤 C# 列表中的列表
var catalogs = await _context.MerchantCatalogs
.Include(x => x.merchantDiscounts)
.ToListAsync();
我有一个商品列表,里面有一个折扣列表,我需要获取特定用户的折扣
MerchantCatalogs 有一个名为 discount 的字段,它的折扣类型为 (1,2) 我只需要在类型为 2
的列表中获得折扣public class MerchantCatalogs
{
int ID;
public ICollection<MerchantDiscount> merchantDiscounts { get; set; }
}
public class MerchantDiscount
{
int id;
int type;
}
如何获取内部列表为 MerchantDiscount = 1 的列表
尝试使用 Where 子句过滤结果:
var catalogs = await _context.MerchantCatalogs
.Include(x => x.merchantDiscounts.Where(discount => discount.type == 2))
.ToListAsync();
如果您只想要有任何类型 2 折扣的商家
var catalogs = await _context.MerchantCatalogs
.Include(x => x.merchantDiscounts.Where(discount => discount.type == 2))
.Where(merchant=> merchant.merchantDiscounts.Any())
.ToListAsync();