C# 将一个值与几个可能的列表匹配项进行比较
我又回到你的梦中去了!我正在比较复杂循环中的一些值。列表1是问题/答案列表,列表2也是问题/答案列表。我想将列表1与列表2进行比较,并在将其与列表2合并之前从列表1中删除重复项。我的问题是,在当前的种子数据中,列表1中的两项与列表2中的两项匹配,但只有一项被删除,而不是两项都被删除 我已经做了几天了,我的脑袋快要爆炸了,所以我希望我能找到一些帮助 以下是您的代码:C# 将一个值与几个可能的列表匹配项进行比较,c#,asp.net-mvc-5,C#,Asp.net Mvc 5,我又回到你的梦中去了!我正在比较复杂循环中的一些值。列表1是问题/答案列表,列表2也是问题/答案列表。我想将列表1与列表2进行比较,并在将其与列表2合并之前从列表1中删除重复项。我的问题是,在当前的种子数据中,列表1中的两项与列表2中的两项匹配,但只有一项被删除,而不是两项都被删除 我已经做了几天了,我的脑袋快要爆炸了,所以我希望我能找到一些帮助 以下是您的代码: //Fetching questions/answers which do not have an attempt //Get qu
//Fetching questions/answers which do not have an attempt
//Get questions, which automatically pull associated answers thanks to the model
List<QuizQuestions> notTriedQuestions = await db.QuizQuestions.Where(x=>x.QuizID == report.QuizHeader.QuizID).ToListAsync();
//Compare to existing attempt data and remove duplicate questions
int i = 0;
while(i < notTriedQuestions.Count)
{
var originalAnswersCount = notTriedQuestions.ElementAt(i).QuizAnswers.Count;
int j = 0;
while(j < originalAnswersCount)
{
var comparedID = notTriedQuestions.ElementAt(i).QuizAnswers.ElementAt(j).AnswerID;
if (report.QuizHeader.QuizQuestions.Any(item => item.QuizAnswers.Any(x => x.AnswerID == comparedID)))
{
notTriedQuestions.RemoveAt(i);
//Trip while value and cause break out of loop, otherwise you result in a catch
j = originalAnswersCount;
}
else
{
j++;
}
}
i++;
}
//Add filtered list to master list
foreach (var item in notTriedQuestions)
{
report.QuizQuestions.Add(item);
}
正是为了这类事情。正是为了这类事情。就是这样。非常感谢。很乐意帮忙。我强烈推荐同样可用的Set操作。那里有一些非常方便的东西。就这样。非常感谢。很乐意帮忙。我强烈推荐同样可用的Set操作。那里有一些非常方便的东西。