C# 基于公共变量组合2个对象列表中的值
我有两张名单:a名单,b名单C# 基于公共变量组合2个对象列表中的值,c#,linq,arraylist,C#,Linq,Arraylist,我有两张名单:a名单,b名单 var a1= new A { Name = "XYZ", Id = "123" }; var a2= new A { Name = "UVW", Id = "567" }; var a = new List<A>() { a1, a2 }; public class A { public string Name{ get; set;
var a1= new A
{
Name = "XYZ",
Id = "123"
};
var a2= new A
{
Name = "UVW",
Id = "567"
};
var a = new List<A>()
{
a1,
a2
};
public class A
{
public string Name{ get; set; }
public string Id{ get; set; }
}
var b1= new B
{
Location = "US",
Id = "123"
};
var b2= new B
{
Location = "IN",
Id = "567"
};
var b = new List<B>()
{
b1,
b2
};
public class B
{
public string Location{ get; set; }
public string Id{ get; set; }
}
var a1=新A
{
Name=“XYZ”,
Id=“123”
};
var a2=新A
{
Name=“UVW”,
Id=“567”
};
var a=新列表()
{
a1,
a2
};
公共A类
{
公共字符串名称{get;set;}
公共字符串Id{get;set;}
}
变量b1=新的B
{
Location=“US”,
Id=“123”
};
var b2=新的B
{
Location=“IN”,
Id=“567”
};
var b=新列表()
{
b1,
b2
};
公共B级
{
公共字符串位置{get;set;}
公共字符串Id{get;set;}
}
请注意,Id在A类和B类中都是通用的。最终目标是创建一个包含a类和B类成员值的列表:
var output = new List<AB>()
{
ab1,
ab2
}
public class AB
{
public string Id{ get; set; }
public string Name { get; set; }
public string Location { get; set; }
}
var输出=新列表()
{
ab1,
ab2
}
公共AB类
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
公共字符串位置{get;set;}
}
或者更新列表a以包含列表b中的值
在C#中如何实现这一点?您可以使用它来获取基于Id
的公共数据,并填充AB
,如以下代码所示:
var output = aList.Join(bList,
a => a.Id,
b => b.Id,
(a, b) => new AB
{
Id = a.Id,
Location = b.Location,
Name = a.Name
}).ToList();
演示
foreach(var item in output)
{
Console.WriteLine($"Id:{item.Id}, Name : {item.Name}, Location:{item.Location}");
}
结果:
Id:123, Name : XYZ, Location:US
Id:567, Name : UVW, Location:IN
dotnetfiddle中的演示:
我希望这对您有所帮助。如果您描述一下您的实际目标,可能会有所帮助。你这样做的目的是什么?我觉得你把一个相当简单的问题复杂化了。也许可以展示一些你想要的输入和输出示例。这是否回答了你的问题?