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)
您可以使用Convert.ToInt32()方法将您转换String为integer
试试这个:
//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)