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

これは次のことに役立ちます。

public static string ReverseString(string s) { char[] arr = s.ToCharArray(); Array.Reverse(arr); 新しい文字列を返します(arr); }

于 2013-07-18T07:54:25.560 に答える