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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.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# 使用LINQ选择多个对象_C#_Linq - Fatal编程技术网

C# 使用LINQ选择多个对象

C# 使用LINQ选择多个对象,c#,linq,C#,Linq,我想知道,如何使用LINQ实现这一点: 对象: public class ObjView { public A aObj { get; set; } Public B bObj { get; set; } } 查询: var query = from a in A join b in B on a.B_Id equals b.B_Id select new ObjView(){

我想知道,如何使用LINQ实现这一点:

对象:

 public class ObjView
    {
      public A aObj { get; set; }
      Public B bObj { get; set; }
    }
查询:

var query = from a in A
            join b in B on a.B_Id equals b.B_Id 
            select new ObjView(){
            aObject.Item1 = a.Item1,
            aObject.Item2 = a.Item2,
            bObject.Item1 = b.Item1,
            bObject.Item2 = b.Item2,
            };

这就是你想要实现的吗

class Program
{
    static void Main(string[] args)
    {
        List<ObjA> objAs = new List<ObjA>();
        List<ObjB> objBs = new List<ObjB>();

        var query = (from a in objAs
                     join b in objBs on a.ID equals b.ID
                     select new ObjView()
                     {
                         ObjA = new ObjA()
                         {
                             Item1 = a.Item1,
                             Item2 = a.Item2
                         },
                         ObjB = new ObjB()
                         {
                             Item1 = b.Item1,
                             Item2 = b.Item2
                         }
                     });
    }
}

public class ObjA
{
    public int ID { get; set; }
    public Object Item1 { get; set; }
    public Object Item2 { get; set; }
}

public class ObjB
{
    public int ID { get; set; }
    public Object Item1 { get; set; }
    public Object Item2 { get; set; }
}

public class ObjView
{
    public ObjA ObjA { get; set; }
    public ObjB ObjB { get; set; }
}
类程序
{
静态void Main(字符串[]参数)
{
List objAs=新列表();
List objBs=新列表();
变量查询=(来自objAs中的
在a.ID等于b.ID的对象jbs中加入b
选择新的ObjView()
{
ObjA=新的ObjA()
{
Item1=a.Item1,
Item2=a.Item2
},
ObjB=新的ObjB()
{
第1项=b.1项,
Item2=b.Item2
}
});
}
}
公共类ObjA
{
公共int ID{get;set;}
公共对象Item1{get;set;}
公共对象项2{get;set;}
}
公共类ObjB
{
公共int ID{get;set;}
公共对象Item1{get;set;}
公共对象项2{get;set;}
}
公共类ObjView
{
公共ObjA ObjA{get;set;}
公共ObjB ObjB{get;set;}
}

请提供,这个问题缺少太多的部分,无法完全理解您要问的是什么。当您尝试所拥有的代码时会发生什么?这似乎有点像XY问题-想要将事物分割成不同的对象是非常不寻常的。有没有理由不在
ObjView
上有一个合理的构造函数,它会占用您的时间
A
B
并根据需要创建
ObjView
?它不仅会引发空引用异常,而且不会编译,因为您错误地使用了属性名称。答案不应该是问题;)@马可:是的,这就是我想要实现的目标。