C# 使用LINQ选择多个对象
我想知道,如何使用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(){
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
?它不仅会引发空引用异常,而且不会编译,因为您错误地使用了属性名称。答案不应该是问题;)@马可:是的,这就是我想要实现的目标。