2012-03-07 37 views
2

結構是我如何在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有一個Id這也是目前在list<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; 
} 
+5

你的職位是非常* *難以遵循的時刻。請閱讀http://tinyurl.com/so-hints並進行相應編輯 - 如果可能的話,包括一些代碼。 – 2012-03-07 10:34:12

+0

一分鐘先生,我會更新它。感謝您告訴我這個問題 – Chinook 2012-03-07 10:35:16

+0

請發佈(簡化)類定義。 – 2012-03-07 10:35:26

回答

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);