C# 使用linq时如何将多个选择返回为数据表

C# 使用linq时如何将多个选择返回为数据表,c#,C#,我对使用linq非常陌生,与普通的sql相比,它能做什么,不能做什么,我都在苦苦挣扎 我有一个返回dataTable的函数,我想让它返回插槽提供的内容。通过只做一次选择,我可以通过使用copyToDataTable实现这一点,如下所示 var slots = from parts1 in DT1.AsEnumerable() join parts2 in DT2.AsEnumerable() on p

我对使用linq非常陌生,与普通的sql相比,它能做什么,不能做什么,我都在苦苦挣扎

我有一个返回dataTable的函数,我想让它返回插槽提供的内容。通过只做一次选择,我可以通过使用copyToDataTable实现这一点,如下所示

        var slots = from parts1 in DT1.AsEnumerable()
                    join parts2 in DT2.AsEnumerable() on
                    parts1.Field<string>("Part_name") equals
                    parts2.Field<string>("Part_name")
                    where parts1.Field<string>("M0") != parts2.Field<string> 
                    ("M1")
                    select parts1;

        return slots.CopyToDataTable();
var slots=来自DT1.AsEnumerable()中的parts1
在上的DT2.AsEnumerable()中联接parts2
parts1.字段(“Part_名称”)等于
零件2.字段(“零件名称”)
其中零件1.字段(“M0”)!=第2部分:字段
(“M1”)
选择parts1;
返回slots.CopyToDataTable();
但当我尝试使用多重选择时,它不起作用。有没有其他类似于复制的方法?或者我怎样才能做到这一点

           var slots = from parts1 in DT1.AsEnumerable()
                    join parts2 in DT2.AsEnumerable() on
                    parts1.Field<string>("Part_name") equals
                    parts2.Field<string>("Part_name")
                    where parts1.Field<string>("M0") != parts2.Field<string> 
                    ("M1")
                    select new
                    { 
                        partName = parts1.Field<string>("Part_name"),
                        M0 = parts1.Field<string>("M0"),
                        M1 = parts2.Field<string>("M1")
                    };

           return slots;
var slots=来自DT1.AsEnumerable()中的parts1
在上的DT2.AsEnumerable()中联接parts2
parts1.字段(“Part_名称”)等于
零件2.字段(“零件名称”)
其中零件1.字段(“M0”)!=第2部分:字段
(“M1”)
选择新的
{ 
partName=parts1.字段(“Part_名称”),
M0=零件1.字段(“M0”),
M1=零件2.字段(“M1”)
};
返回槽;
addtolist():(from…).ToList();因此,您可以看到返回的所有值。