对于回路组位置1-5,并检查位置6和7

时间:2019-03-27 12:58:14

标签: c#

我刚接触编程,所以很难为我的问题找到标题。让我尝试更好地解释一下:

我有一个for循环,它遍历字符串列表

for (int i = 0; i < StringList.Count; i++)
{               

}

字符串具有一般模式: 列表开始于:

  1. String1
  2. String2
  3. String3
  4. String4
  5. String5

然后可能会随机发生StringT和StringB。 在出现string5或StringT或StringB的可能组合之后,它将返回到string1-5,并重新开始。 (字符串1-5都稍有不同,但足够相似以进行过滤)。 StringT和StringB都具有标识的“功能”,我可以在if语句中检查

我的目标是:

将前5个字符串添加到TempString中,并检查其中是否存在StringT或StringB。如果它们在那里,也将它们添加到TempString中。之后,我将临时字符串添加到列表中,因此list [0]将由(字符串1,字符串2,字符串3,字符串4,字符串5和MAYBE StringT和或StringB)组成

此后重复该过程,直到循环结束。

我使用foreach循环尝试了此方法,并尝试了与以下问题类似的解决方案: how to loop over generic List<T> and group per 3 items 但它们都无法解决随机字符串存在的问题(至少对我而言)

1 个答案:

答案 0 :(得分:0)

您可以检查列表中一组特定字符串的可能性,如下所示:

bool StringListEnded = false;    
            var resultGroup = new Dictionary<List<string>,bool>();
            foreach(List<string> list in StringListGroup){
                    bool StringTFound = false;
                    bool StringBFound = false;
                    foreach (string item in list)
                    {               
                       if(item == "someStringT")
                       {
                           StringTFound = true;
                       }
                       if(item == "someStringB")
                       {
                          StringBFound = true;
                       }
                    }
        //here you can save values in the dictionary against each list from the group and the possibility of occurring specific string using both flags for stringB and stringT
    if(StringTFound || StringBFound){
       resultGroup.Add(list,true);
    }
                }