gpt4 book ai didi

c# - 如何从匿名列表中删除项目

转载 作者:行者123 更新时间:2023-11-30 22:14:11 25 4
gpt4 key购买 nike

在 EF 4 C# 上工作。我有一个匿名列表。想要从匿名列表中删除项目

    Anonymous list :

var temp=from p in contex.students select p;//it’s a complex query,for now just use simple select

foreach(var item in temp)
{
if(item.StudentID)//if satisfy some condition then want to remove this student information from anonymous list
{
temp=temp.where(p=>studentID!=item.studentID);
}
}

以上语法对我不起作用。我只想根据几个条件删除项目。需要帮助如何从匿名列表中删除项目。

如果有任何疑问请询问。谢谢。

最佳答案

你不应该在你去的时候从列表中删除项目,因为这样做会使 foreach 循环的迭代器无效。你可以在没有循环的情况下做你想做的事:

var temp = contex.students.Where(item => !CheckCondition(item.StudentID));

回想一下,Where 让您可以对整个集合作为一个整体进行操作。 CheckCondition 将在每个学生 ID 上调用(我尝试按照您的示例;您不需要仅根据 StudentID 进行选择),以及所有通过的学生CheckCondition 将被删除。

请注意,如果 contex 是 EF/LINQ2SQL 上下文,您需要在使用 C# 代码检查条件之前添加 AsEnumerable():

var temp = contex.students
.AsEnumerable()
.Where(item => !CheckCondition(item.StudentID));

关于c# - 如何从匿名列表中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18618492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com