我怎样才能在c#中做到这一点?

时间:2012-03-07 10:31:41

标签: c#

结构是

  • 产品有一个类别列表。
  • 类别有一个pieceinfo列表
  • 每个pieceinfo都有一个ID,我想检查它是否存在于产品中。

我有一个列表int List<int> pieceinfo,我想从List<product>获取。

有人可以告诉我如何做到这一点吗?

我想写一个lambda expression来检查pieceinfo是否存在。

Model.Find(x => x.Categories.Find(y => y.PieceInfo.Find(z => z.Id == i)))

我想知道如果每个产品的类别“pieceinfo都有一个Idlist<int> i中也会出现,我就知道如何检查。

public struct Product
{
    public int Id;
    public string Title;
    public List<Productdetailed> Info;
    public List<ProductCategory> Categories;
}

public struct ProductCategory
{
    public int Id;
    public string Title;
    public bool Has_Image;
    public List<ProductInfo> PieceInfo;
    public int ProdId;
}

/// <summary>
/// Coverage, packing detailed
/// </summary>
public struct ProductInfo
{
    public int Id;
    public string Size;
    public string Packing;
    public string Price;
    public bool PricePerTon;
    public int ProdId;
    public int Cat_Id;
}

public struct Productdetailed
{
    public int Id;
    public string Packaging;
    public string Coverage;
    public int prodId;
}

1 个答案:

答案 0 :(得分:3)

var allPieces = Model.SelectMany(x => x.Categories).SelectMany(y => y.PieceInfo);
var isPieceExist = allPieces.Any(piece => piece.Id == id);

// or

var findedPiece  = allPieces.FirstOrDefault(piece => piece.Id == id);