2012-01-11 5 views
2

選択はAddRangeでのLINQのForEachと含まれており、私はLINQクエリに変身しようとしていることをforeachループを持っています

List<CustomType> typeList=new List<CustomType>(); 
List<int> ListID=new List<int>(); 

foreach (Info info in SubDetails) 
{ 
    if (typeList.Contains(info.TypeID)) 
    { 
     ListID.Add(info.OrderID); 
    } 
} 

今私は、LINQループ

SubDetails.ForEach(u => List.AddRange(
        typeList.Contains(ID or something) 
        .Select(u.OrderID))); 
にそれを回すためにしようとしています

しかし、それは明らかに動作しませんでした、親切にこれを試してみて右方向へ

答えて

1

私を導く:

これを試して
1

あなたが

SubDetails.Where(t => typeList.Exists(lst => lst.XXX == t.TypeID)).Select(id => id.OrderID) 
+0

こんにちは、返事のおかげで、私はtypeList.Contains(t.TypeID)からエラーを取得しています)typeList.Containsはそれにカスタムタイプの何かを期待して、私はそれは私が答えをマージ動作させることができエドのtypeList.Any(u => u.TypeID == t.TypeID)、親切にあなたのアプローチを教えてください – MegaMind

+0

私はカスタムタイプの部品を見逃しました – V4Vendetta

+0

あなたのための1つのupvote – MegaMind

1

としてListIDを埋めることができます。

var ListID = typelist.Join(SubDetails,tl=>tl,sd=>sd.TypeID,(tl,sd)=>sd.OrderID).ToArray();