我有两种不同的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
我想用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();