2

我想从 foreach 反向获取数据

这里XmlNodeList comments = d.SelectNodes("//comments/comment/creator");

我有 4 个值,我想反转它

我已经写了这段代码

 public void commentM4(string pstId, string cmtId)
    {
        XmlDocument d = new XmlDocument();
        d.LoadXml(content);

        XmlNodeList comments = d.SelectNodes("//comments/comment/creator");
        foreach (XmlNode xncomment in  comments)
        {
            commentMemberId = xncomment["id"].InnerText;
            DbConnection.Open();
            DbCommand = new OleDbCommand("select count(response_id) from  mw_response where customer_id = '" + commentMemberId + "' AND post_id='" + pstId + "'", DbConnection);
            OleDbDataReader DbReader = DbCommand.ExecuteReader();

            while (DbReader.Read())
            {
                count = DbReader[0].ToString();
                cnt = Convert.ToInt32(count);
                if ((cnt == 0) && (comments1 != ""))
                {
                    DbCommand = new OleDbCommand("update mw_response set prod_id = (select prod_id from mw_post where post_id='" + pstId + "'),customer_id = (select customer_id from mw_customer where customer_id='" + commentMemberId + "') where response_id = '" + cmtId + "'", DbConnection);
                    DbCommand.ExecuteNonQuery();
                }
            }
            DbReader.Close();
            DbConnection.Close();
        }
    }

有任何想法吗?提前致谢。

4

2 回答 2

5

改用for循环,从最后一个元素开始,然后返回到第一个元素。

if (comments.Count > 0)
{
    for (int i = (comments.Count - 1); i >= 0; i--)
    {
     XmlNode xncomment = comments[i];
    //Rest of the logic...
    }
}

更新:我添加了一个 if 块以确保循环仅在集合中有多个元素时运行。

于 2013-07-18T07:58:10.027 回答
0

这可以帮助您:

公共静态字符串 ReverseString(string s) { char[] arr = s.ToCharArray(); Array.Reverse(arr); 返回新字符串(arr);}

于 2013-07-18T07:54:25.560 回答