我有两种不同的C#(3.5)类型.我不控制它们,所以我不能让它们从常见类型继承或实现接口.但它们在"形状"上非常相似:
class A
{
string Name
string Data
}
class B
{
string Title
string OtherStuff
}
class C
{
string ID
string ExtendedData
}
List< A > myAList
List< B > myBList
Run Code Online (Sandbox Code Playgroud)
我想用LINQ查询执行以下操作:
返回列表中的所有元素myAList,并myBList通过命令Name或Title(不论适用)的结果必然是List< C >其中ID = Name或Title和ExtendedData = Data或OtherStuff
思考?
var myCList = (myAList.Select(a => new C
{ ID = a.Name, ExtendedData = a.Data })
.Union(myBList.Select(b => new C
{ ID = b.Title, ExtendedData = b.OtherStuff }))
.OrderBy(c => c.ID)
.ToList();
Run Code Online (Sandbox Code Playgroud)