繁体   English   中英

如何在多个条件下使用动态LINQ连接扩展方法

[英]How to use a dynamic LINQ join extension method for multiple conditions

我正在尝试测试一种动态联接扩展方法,该方法在这里定义为在多个条件下联接两个数据集(dataset1和dataset2)。 我的加入条件如下

    outerSelector = "new ( dataset1.ToBeReconciled as col1, dataset1.TransactionDate as col2)";
innerSelector = "new ( dataset2.ToBeReconciled as col1, dataset2.TransactionDate as col2)";

这不会导致任何错误,但是即使我有符合此条件的记录,也总是会返回零记录。

任何想法如何使这项工作? 谢谢!

也许您应该从一个简单的示例开始,然后尝试完成您所拥有的...我在下面编写了一个简单易懂的示例。

void Main()
{
    var fruits = new List<Fruit>
    {
        new Fruit{ GroceryId = 1,Name = "Apple", ProductId = 1},
        new Fruit{ GroceryId = 1,Name = "Orange", ProductId = 2},
    };

    var groceries = new List<Grocery>
    {
        new Grocery { GroceryId = 1, Name = "Fruits and Vegetables" },
        new Grocery { GroceryId = 2, Name = "Drinks and snacks" },
    };

    var joinedResults = fruits.Join(groceries, // References the groceries declared above,
                                    fruit => fruit.GroceryId,  // Join by GroceryId located on the Fruit
                                    grocery => grocery.GroceryId,  // Join by the GroceryID located on Grocery 
                                    (product, grocery) => new 
                                    {
                                        ProductId = product.ProductId, 
                                        ProductName = product.Name, 
                                        GroceryName = grocery.Name
                                    });
}
public class Fruit
{
    public int ProductId { get; set; }
    public int GroceryId { get; set; }
    public string Name { get; set; }
}

public class Grocery
{
    public int GroceryId { get; set; }
    public string Name { get; set; }
}

结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM