C#将String转换为Integer

Jos*_*hua 0 c# string int type-conversion

我终于从VB.net跳到了C#,所以我还有一些问题.我正在制作一个通过RSS源连接的简单天气应用程序.我希望它返回一个标签,确定它是否在外面冻结; 我在将温度字符串转换为整数时遇到问题,因此我可以确定温度是否小于或等于32度.有任何想法吗?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;

namespace WeatherApp
{
    public partial class frmWeather : Form
    {
        string Temperature;
        public frmWeather()
        {
            InitializeComponent();
        }
        private void getWeather()
        {
            string query = string.Format("http://weather.yahooapis.com/forecastrss?w=" + txtZip.Text);
            XmlDocument wData = new XmlDocument();
            wData.Load(query);
            XmlNamespaceManager manager = new XmlNamespaceManager(wData.NameTable);
            manager.AddNamespace("yweather", "http://xml.weather.yahoo.com/ns/rss/1.0");
            XmlNode channel = wData.SelectSingleNode("rss").SelectSingleNode("channel");
            XmlNodeList nodes = wData.SelectNodes("/rss/channel/item/yweather:forecast", manager);
            Temperature = channel.SelectSingleNode("item").SelectSingleNode("yweather:condition", manager).Attributes["temp"].Value;
        }
        private void tmrWeather_Tick(object sender, EventArgs e)
        {
            getWeather();
            DateTime now = DateTime.Now;
            lblTemp.Text = "" + Temperature;
            if (lblTemp.Text <= "32")
            {
                lblResult.Text = "It is freezing outside!";
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Sud*_*udi 6

您可以使用Convert.ToInt32()方法将您转换Stringinteger

试试这个:

      //lblTemp.Text = "" + Temperature;  this statement is not required.
      if (Convert.ToInt32(Temperature) <= 32)
        {
            lblResult.Text = "It is freezing outside!";
        }
Run Code Online (Sandbox Code Playgroud)

要么

int.TryParse()即使数据无效,您也可以使用方法执行正确的转换.

试试这个:

        int temp;
        if (int.TryParse(Temperature,out temp))
        {
             if(temp <= 32)             
             lblResult.Text = "It is freezing outside!";
        }
Run Code Online (Sandbox Code Playgroud)