Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有AddRange和Contains并选择的Linq ForEach_C#_Linq_Lambda_Foreach - Fatal编程技术网

C# 具有AddRange和Contains并选择的Linq ForEach

C# 具有AddRange和Contains并选择的Linq ForEach,c#,linq,lambda,foreach,C#,Linq,Lambda,Foreach,我有一个foreach循环,我正试图将其转换为linq查询 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.Order

我有一个foreach循环,我正试图将其转换为linq查询

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);
    }
}
但这显然不起作用,请引导我走向正确的方向

var ListID = SubDetails
                .Where(info => typeList.Any(type => type == info.TypeID)
                .Select(info => info.OrderID);

您可以将ListID填写为

SubDetails.Where(t => typeList.Exists(lst => lst.XXX == t.TypeID)).Select(id => id.OrderID)
试试这个

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

您好,谢谢您的回复,但是我从typeList中得到了错误。Contains(t.TypeID))作为typeList。Contains期望在其中包含一些自定义类型的内容,我可以将其与Ed的答案typeList进行合并。任何(u=>u.TypeID==t.TypeID),请告知您的方法。我错过了自定义类型部分
var ListID = typelist.Join(SubDetails,tl=>tl,sd=>sd.TypeID,(tl,sd)=>sd.OrderID).ToArray();