lambda查看list是否包含来自另一个列表的元素

时间:2015-03-02 14:49:13

标签: c# list lambda

我有一个列表,我选择了ID,我想看看其中一个ID是否存在于另一个ID列表中。我该怎么做?

我试图做这样的事情:

 customerViewModel.Suppliers.Select(w => w.SupplierId).Contains(SessionCms.Suppliers.Select(a => a.SupplierId))

我的sessioncms对象是供应商列表,我的customerviewmodel.suppliers也是供应商列表。

(这里我只是写一些废话,以便我符合发布此问题的质量标准)

1 个答案:

答案 0 :(得分:0)

你去了:

class Program {
    static void Main(string[] args) {
        bool contains = thisList.AnyOf(thatList, t => t.Property);
        Console.WriteLine(contains);
        Console.ReadKey(true);
    }
}

static class _ {
    public static bool AnyOf<T, P>(this IEnumerable<T> thisList, IEnumerable<T> thatList, Func<T, P> propertySelector) {
        foreach(P thisProperty in thisList.Select(propertySelector)) {
            foreach(P thatProperty in thatList.Select(propertySelector)) {
                if(thisProperty.Equals(thatProperty)) {
                    return true;
                }
            }
        }
        return false;
    }
}