Linq查询返回不匹配的ID

时间:2013-12-19 15:33:18

标签: c# linq

我有两个具有Item ID的表,我正在尝试获取一个而不是另一个存在的ID列表。

这是我到目前为止所做的。

 var misMathcedID = (from a in TableA
                     join b in TableB
                     on a.ItemNumber equals b.ItemNumber
                     where b.ItemNumber == null
                     select a).ToList();

3 个答案:

答案 0 :(得分:2)

尝试类似的东西。

 var infoQuery = (from a in TableA
 select a.id).Except(from b in tableB select b.id)

答案 1 :(得分:1)

如果它们只是Ids的表格,你可以做Except

var result = TableA.Except(TableB);

答案 2 :(得分:0)

您可以编写一个扩展方法并使用它来获取一个列表中存在但不存在另一个列表的值:

public static class Extensions
{
    public static bool NotIn<T>(this T item, IList<T> list)
    {
        return !list.Contains(item);
    }
}

//Example:
List<int> listA = new List<int> { 1, 2, 3, 4, 5 };
List<int> listB = new List<int> { 3, 5, 7, 8 };

var result = listA.Where(x => x.NotIn(listB));
//Output: 1, 2, 4