使用 LINQ 查询加入两个列表并仅显示相关数据
Joining Two list using LINQ Query and displaying only relevant data
我是 LINQ 编程和工作的新手,我有两个列表都有不同的数据,我想做的是将它们加入一个单独的列表,然后只显示“黑色”和“白色” “使用 LINQ(Query 或 IQueryable,无论它是什么)的汽车数据是我的代码,它做完全不同的事情
static void Main(string[] args)
{
List<Cars> cars = new List<Cars>();
cars.Add (new Cars { Make = "Honda", Model = 2020, Color = "Black"});
cars.Add (new Cars { Make = "Suzuki", Model = 2020, Color = "White" });
cars.Add (new Cars { Make = "Toyota", Model = 2020, Color = "Green" });
cars.Add (new Cars { Make = "Kia", Model = 2020, Color = "Blue" });
List<MakeBy> makeby = new List<MakeBy>();
makeby.Add(new MakeBy { Color = "White", Country = "China" });
makeby.Add(new MakeBy { Color = "Black", Country = "Japan" });
makeby.Add(new MakeBy { Color = "White", Country = "Japan" });
makeby.Add(new MakeBy { Color = "White", Country = "Korea" });
var CombineCars = cars.Zip(makeby, (e, s) => e.Color + "White" + s.Color + "Black");
foreach(var item in CombineCars)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
看看以下是否有效。如果没有,请更准确地说明您需要什么输出。
var CombineCars = cars.Join(maekby,
c => c.Color,
m => m.Color,
(c, m) => new
{
carMake = c.Make,
carModel = c.Model,
carColor = c.Color,
makeByColor = m.Color,
makeByCountry = m.Country
});
现在您可以像这样访问它:
foreach (var car in CombineCars)
{
Console.WriteLine($"Car model: {car.carModel}, car make: {car.carMake}"); //and so on
}
尚未测试,但它应该可以满足您的需求。
我是 LINQ 编程和工作的新手,我有两个列表都有不同的数据,我想做的是将它们加入一个单独的列表,然后只显示“黑色”和“白色” “使用 LINQ(Query 或 IQueryable,无论它是什么)的汽车数据是我的代码,它做完全不同的事情
static void Main(string[] args)
{
List<Cars> cars = new List<Cars>();
cars.Add (new Cars { Make = "Honda", Model = 2020, Color = "Black"});
cars.Add (new Cars { Make = "Suzuki", Model = 2020, Color = "White" });
cars.Add (new Cars { Make = "Toyota", Model = 2020, Color = "Green" });
cars.Add (new Cars { Make = "Kia", Model = 2020, Color = "Blue" });
List<MakeBy> makeby = new List<MakeBy>();
makeby.Add(new MakeBy { Color = "White", Country = "China" });
makeby.Add(new MakeBy { Color = "Black", Country = "Japan" });
makeby.Add(new MakeBy { Color = "White", Country = "Japan" });
makeby.Add(new MakeBy { Color = "White", Country = "Korea" });
var CombineCars = cars.Zip(makeby, (e, s) => e.Color + "White" + s.Color + "Black");
foreach(var item in CombineCars)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
看看以下是否有效。如果没有,请更准确地说明您需要什么输出。
var CombineCars = cars.Join(maekby,
c => c.Color,
m => m.Color,
(c, m) => new
{
carMake = c.Make,
carModel = c.Model,
carColor = c.Color,
makeByColor = m.Color,
makeByCountry = m.Country
});
现在您可以像这样访问它:
foreach (var car in CombineCars)
{
Console.WriteLine($"Car model: {car.carModel}, car make: {car.carMake}"); //and so on
}
尚未测试,但它应该可以满足您的需求。