C# FOREACH循环调用和打印问题

C# FOREACH循环调用和打印问题,c#,foreach,C#,Foreach,在下面的代码中,我很好奇为什么最终的foreach循环会将“Alert”writeline打印三次 信息1 信息2 信息3 信息1 信息2 信息3 另外,它只调用最后一个Pop..Pop是一个弹出式通知,显示来自javascript端的消息类型..正发送3条消息,但通知仅显示最后一条消息文本 哦,“i”总是打印0,它从不递增 NameValueCollection NV = new NameValueCollection(); NV.Add("TOKEN", Encod

在下面的代码中,我很好奇为什么最终的foreach循环会将“Alert”writeline打印三次 信息1 信息2 信息3 信息1 信息2 信息3 另外,它只调用最后一个Pop..Pop是一个弹出式通知,显示来自javascript端的消息类型..正发送3条消息,但通知仅显示最后一条消息文本

哦,“i”总是打印0,它从不递增

     NameValueCollection NV = new NameValueCollection();
        NV.Add("TOKEN", EncodeTo64(EncodeTo64(uid)));
        string[] values = null;
        string post = HttpPost("https:somewebsite.com", NV);
        foreach (string k in NV.Keys)
        {
            Console.WriteLine("ONE");
            values = NV.GetValues(k);
            foreach (string value in values)
            {
                Console.WriteLine("TWO");
                var mm = JsonConvert.DeserializeObject<List<Messages>>(DecodeFrom64(post));
                foreach (Messages m1 in mm)
                {
                    Console.WriteLine("THREE\n");

                    Console.WriteLine("Alert->"+i+": "+m1.alert_message + " " +"Message: "+ m1.notif_message);
                    string alert = m1.alert_message;
                    string type = m1.notif_message;
                    Pop(type, alert);

                }



            }

        }
NameValueCollection NV=新的NameValueCollection();
添加(“令牌”,EncodeTo64(EncodeTo64(uid));
字符串[]值=null;
字符串post=HttpPost(“https:somewebsite.com”,NV);
foreach(NV.Keys中的字符串k)
{
控制台。写入线(“一”);
值=NV.GetValues(k);
foreach(值中的字符串值)
{
控制台。写入线(“两”);
var mm=JsonConvert.DeserializeObject(DecodeFrom64(post));
foreach(消息m1,单位为mm)
{
Console.WriteLine(“三个”);
Console.WriteLine(“警报->”+i+:“+m1.Alert\u消息+”+“+”消息:“+m1.notif\u消息”);
字符串警报=m1.alert\u消息;
字符串类型=m1.notif_消息;
Pop(类型、警报);
}
}
}

我把oher的书写线放进去看看它能打印多少次

您的i在foreach中声明。它不会递增,因为每次都将其设置回0。将其放在foreach之前。

您总是将i=0设置为0。当然,它从不递增。循环中有int i=0。哎哟..我怎么会错过它修复了那部分..有没有线索说明为什么Console.WriteLine(“Alert->”)会被打印两次?每个循环都嵌入了三个。警报1警报2警报3警报1警报2警报3有意义,例如,如果值数组中有两个字符串,尤其是如果该循环中没有任何内容会导致mm为值数组中的第二个字符串生成不同的消息。