Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用LINQ查询连接两个列表并仅显示相关数据_C#_Linq_Console Application - Fatal编程技术网

C# 使用LINQ查询连接两个列表并仅显示相关数据

C# 使用LINQ查询连接两个列表并仅显示相关数据,c#,linq,console-application,C#,Linq,Console Application,我不熟悉LINQ的编程和工作,我有两个列表,它们都有不同的数据,我正在尝试将它们连接到一个单独的列表中,然后使用LINQ(查询或IQueryable,无论它是什么)只显示“黑色”和“白色”汽车数据。这是我的代码,它做完全不同的事情 static void Main(string[] args) { List<Cars> cars = new List<Cars>(); cars.Add (new Cars { Make = &q

我不熟悉LINQ的编程和工作,我有两个列表,它们都有不同的数据,我正在尝试将它们连接到一个单独的列表中,然后使用LINQ(查询或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();

    }
static void Main(字符串[]args)
{
列出车辆=新列表();
添加(新车{Make=“Honda”,Model=2020,Color=“Black”});
添加(新车{Make=“Suzuki”,Model=2020,Color=“White”});
添加(新车{Make=“Toyota”,Model=2020,Color=“Green”});
添加(新车{Make=“Kia”,Model=2020,Color=“Blue”});
List makeby=new List();
makeby.Add(新makeby{Color=“White”,Country=“China”});
添加(新的makeby{Color=“Black”,Country=“Japan”});
添加(新的makeby{Color=“White”,Country=“Japan”});
添加(新的makeby{Color=“White”,Country=“Korea”});
var CombineCars=cars.Zip(makeby,(e,s)=>e.Color+“白色”+s.Color+“黑色”);
foreach(组合CARS中的var项目)
{
控制台写入线(项目);
}
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
}

还没有测试过它,但它应该满足您的需要。

您希望在
控制台中得到什么样的结果?你能提供一个基于你的样本数据的例子吗。。。?
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
    });