嗨,我有这样的代码
List<CQuizOccurrence> matchData = new List<CQuizOccurrence>();
foreach (CQuizOccurrence myQuizOccurrence in Global.quizOccurrences)
{
DateTime dtDatabase = (DateTime)myQuizOccurrence.occurred;
string dt = dtDatabase.ToString();
if (dt == dateOccur) {
matchData.Add(myQuizOccurrence);
}
}
foreach (CQuizOccurrence myQuizOccurrence in matchData)
{
Global.quizOccurrences.RemoveAt(0);
}我认为代码将能够删除'dt 'Global.quizOccurences‘数据,其中’dt == dateOccur',但我错了,它只是简单地删除'Global.quizOccurences‘与索引0
如何根据我的意愿改正(斜体和粗体文本)
发布于 2014-02-05 08:21:25
尝试更改这一行:
Global.quizOccurrences.RemoveAt(0);对此:
Global.quizOccurrences.Remove(myQuizOccurrence);发布于 2014-02-05 08:23:22
RemoveAt()移除指定索引处的项。在这种情况下,需要删除与特定条件匹配的项,而不是列表开头的项。
var itemsToRemove = Global.quizOccurrences
.Where(q => q.occurred.ToString() == dateOccur)
.ToList();
foreach(var quizOccurrence in itemsToRemove)
{
Global.quizOccurrences.Remove(quizOccurrence);
}https://stackoverflow.com/questions/21571855
复制相似问题