Non*_*biz 0 c# loops list object
嘿,我有一个循环,将收集的字符串和整数添加到对象中,然后将该对象添加到列表中.我需要它来检查是否已经有一个属性==的对象到我要分配的那个,然后根据属性,我要么改变其中一个属性,要么仍然添加一个新属性宾语.我稍后会对此进行排序.这就是我被困的地方.我已经标记了行(当前已注释掉),当激活时,会导致命令行冻结.奇怪的是我之前使用IDENTICAL代码没有任何问题.
正如你所看到的,我目前已经注释了一些其他代码,因为在我可以继续之前这个位需要工作,但我把它留下来让你更多地了解我在做什么.
解决了.我实际上不得不向上移动另外两个循环.谢谢!
//IF THIS IS THE FIRST ONE, ADD IT!
var refSize = Referrals.Count();
if (refSize == 0)
{
var NewReferral = new Referral(referringURL.Trim(), referringWords.Trim(), 3);
Referrals.Add(NewReferral);
}
else
{
for (int i=0;i<refSize;i++)
{
// RESET BOOLS
URLPresent = false;
KeywordPresent = false;
// IF THE URL IS ALREADY PRESENT
//if (Referrals[i].URL == referringURL)
//{
//URLPresent = true;
// CHECK IF THE KEYWORD IS ALREADY PRESENT
//for (int ii=0;ii<Referrals[i].Keywords.Count;ii++)
//{
// if (Referrals[i].Keywords[ii] == referringWords)
// {
// ADD TO OCCURRENCES
// Referrals[i].Occurrences++;
// KeywordPresent = true;
// }
//}
// ADD KEYWORD TO LIST
// ###
// ###
//}
// IF THE KEYWORD ISN'T THERE && THE URL ISNT THERE, ADD A NEW REFERRAL OBJECT
if (URLPresent == false && KeywordPresent == false)
{
var NewReferral = new Referral(referringURL.Trim(), referringWords.Trim(), 3);
//Referrals.Add(NewReferral); //HERE IS MY PROBLEM! UNCOMMENTING THIS LINE CAUSES A FAIL.
//URLPresent = true;
//KeywordPresent = true;
}
// IF THE URL IS THERE, BUT THE KEYWORD ISNT, ADD AN ELEMENT TO THE REFERRAL.KEYWORDS LIST
//else if (URLPresent == true && KeywordPresent == false)
//{
//Referrals[i].Keywords.Add(referringWords);
//URLPresent = true;
//KeywordPresent = true;
//}
}
}
Run Code Online (Sandbox Code Playgroud)
具体问题是你在追逐自己的尾巴.每次向列表中添加新元素时,Refferals.Count都会上升(如果继续添加元素,则循环将永远不会结束).您应该将计数拉入变量并将其用于循环或使用类似Referrals.Contains ...
var refSize = Refferals.Count();
for (int i=0;i < refSize; i++)
{
// same
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1292 次 |
| 最近记录: |