-2
我試圖根據多個字段獲得兩個集合之間的無與倫比的記錄。Linq-如何根據兩個集合中的多個字段獲取不匹配的記錄
public class Emp
{
public int Id { get; set; }
public string Name { get; set; }
public int Amount { get; set; }
public IList<Emp> GetMasterDetails()
{
IList<Emp> masterList = new List<Emp>
{
new Emp { Id = 952491, Name = "Z005HY11", Amount = 500 },
new Emp { Id = 952491, Name = "Z005H717", Amount = 500 },
new Emp { Id = 1191676, Name = "Z005H717", Amount = 400 }
};
return masterList;
}
public IList<Emp> GetNonMasterDetails()
{
IList<Emp> nonMasterList = new List<Emp>
{
new Emp { Id = 952491, Name = "Z005H717", Amount = 500 },
new Emp { Id = 1191676, Name = "Z005H717", Amount = 500 },
new Emp { Id = 1227997, Name = "Z005HY11", Amount = 400 }
};
return nonMasterList;
}
}
Emp obj = new Emp();
IList<Emp> masterList = obj.GetMasterDetails();
IList<Emp> nonMasterList = obj.GetNonMasterDetails();
var first = masterList.Where(p => !nonMasterList.Any(l => p.Id == l.Id || p.Name ==l.Name)).ToList();
var second = nonMasterList.Where(p => !masterList.Any(l => p.Id == l.Id || p.Name == l.Name)).ToList();
我想上面的lambda但它不工作。我在這裏做什麼錯了? 感謝
對不起文章。我已經更新了這個問題中的數據,但沒有成功。 – user1301587
你期望什麼數據? &&幫助你? –
您的OR條件p.Id == l.Id ||當Id或Name相等時,p.Name == l.Name返回true。使用這種情況下,您列表中的所有數據在另一個數據中具有相同的記錄。 –