2 回答
TA贡献2003条经验 获得超2个赞
您可以只使用 LINQWhere来过滤您的列表,然后Except获取未过滤的值:
List<Item> all = ...; // your original list
List<Item> matching = all.Where(x => IsMatching(x)).ToList(); // IsMatching is any filtering logic
List<Item> notMatching = all.Except(matching).ToList();
TA贡献1783条经验 获得超4个赞
就我从评论中看到的:
我想将 List1 {1, 2, 3} 与标准进行比较,发现 { 2 } 不符合该标准并将其添加到 List2 中。然后从 List1 中删除 { 2 }
我根本看不出Linq 有任何需要。让我们并行填充两个列表:
List<tblList1> List1 = new List<tblList1>();
//TODO: please, check types; it seems that it should be List<tblList1> List2
List<tblList2> List2 = new List<tblList2>();
foreach (var item in new XPQuery<tblList1>(session).Where(w => w.UserID != null)) {
if (YourCriteriaHere)
List1.Add(item); // <- Criteria met: add to List1
else
List2.Add(item); // <- Doesn't meet: "delete" from (just not add to) List1 into List2
}
- 2 回答
- 0 关注
- 306 浏览
添加回答
举报