我有一个ID列表" 100,1025,5341"和一个对象列表。我想获取未包含在我的对象列表中的ID。
作为示例,假设对象列表包含100和5341作为属性(例如:ID)。我希望得到1025作为我的结果。我知道这个请求毫无意义,但我想以某种方式得到它。我可以轻松使用,
string idList = "100,1025,5341";
var objectList = _dataService.GetData();
var result = objectList.Any(item=> idList.Contains(item.ID));
获取已提供ID的列表项。但我希望得到其他方式。我想获取列表中不存在的ID。
答案 0 :(得分:2)
使用Except
:
var ids= idList.Split(',').Select(int.Parse);
var result = objectList.Where(item=> ids.Contains(item.ID));
var r= objectList.Except(result);
如果您只想要未包含在对象列表中的ID,则可以执行以下操作
var ids= idList.Split(',').Select(int.Parse);
var r= ids.Except(ids.Where(i=> objectList.Any(item=> item.ID==i)));
答案 1 :(得分:1)
它会从idList
获取不属于objectList
的ID的ID。如果我正确地取消你想要的东西......
var ids = objectList.Select(x=>x.ID).ToList();
var otherIdsList = idList.Split(',').Select(x=>int.Parse(x)).ToList().Where(x=> !ids.Contains(x)).ToList();