我有以下的功能,但它是非常長的,骯髒的,我想優化它:的foreach得到下一個項目
//some code
if (use_option1 == true)
{
foreach (ListViewItem item in listView1)
{
//1. get subitems into a List<string>
//
//2. process the result using many lines of code
}
}
else if (use_option2 = true)
{
//1. get a string from another List<string>
//
//2. process the result using many lines of code
}
else
{
//1. get a string from another List<string> (2)
//
//2. process the result using many lines of code
}
這是工作非常好,但它是非常骯髒 我想用這樣的:
//some code
if (use_option1 == true)
{
List<string> result = get_item();//get subitems into a List<string>
}
else if (use_option2 = true)
{
//get a string from another List<string>
}
else
{
//get a string from another List<string> (2)
}
//process the result using many lines of code
private void get_item()
{
//foreach bla bla
}
我該如何讓get_item函數每次獲取列表中的下一個項目?
我讀了一些關於GetEnumerator的內容,但我不知道如果這是解決我的問題或如何使用它。
每個選項的處理代碼是否相似? – Justin
在第一個代碼段中,這個「// 2。使用多行代碼處理結果」的評論,這是同一個過程嗎? –
是的,它是一樣的,但我不能在一個函數內部使用它,因爲從開始的代碼(/ /某些代碼)。所以唯一的選擇是從void使用foreach – ShaMora