[英]Converting listview subitems to double
我正在C#上創建一個進程調度計算器,並為輸入創建了listviews,為調度本身創建了listviews,但是當我開始編碼FCFS調度部分時,我無法將突發時間子項轉換為兩倍,因此我可以添加等待現在是代碼的某些部分和表單的屏幕截圖
public void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "")
{
MessageBox.Show("Insert the required in the boxes");
}
else
{
ListViewItem Process = new ListViewItem(textBox1.Text);
Process.SubItems.Add(textBox2.Text);
Process.SubItems.Add(textBox3.Text);
Process.SubItems.Add(textBox4.Text);
listView1.Items.Add(Process);
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
}
}
private void button2_Click(object sender, EventArgs e)
{
double temp = 0;
//First Come First Served
if (comboBox1.Text == "FCFS")
{
for (int i = 0; i < listView1.Items.Count; i++)
{
ListViewItem WaitingTime = new ListViewItem(listView1.Items[i].Text);
//temp = Convert.ToDouble(listView2.Items[i].SubItems[0]) + Convert.ToDouble(listView2.Items[i + 1].SubItems[0]);
if (listView2.Items.Contains(WaitingTime))
{
WaitingTime.SubItems.Add(temp.ToString());
listView2.Items.Add(WaitingTime);
}
else
{
WaitingTime.SubItems.Add(temp.ToString());
listView2.Items.Add(WaitingTime);
}
}
}
//SJF Non-preemptive
if (comboBox1.Text == "SJF non-preemptive")
{
for (int i = 0; i < listView1.Items.Count; i++)
{
listView2.Items.Add(listView1.Items[i].Text);
}
}
}
我試了幾次,搜索了幾個表格,我得到的只是FormatExpection。
Subitems [0]將保留第一個子元素,該子元素與該項的Text相同,而且您無法將ListViewItem.Subitem轉換為文本,需要使用Text屬性。
因此,您需要使用:
listView2.Items[i].SubItems[1].Text
在您的轉換中,我還建議您使用Double.TryParse而不是Convert.ToDouble,它速度更快,並且會告訴您是否已對其進行了解析。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.