簡體   English   中英

在C#中從ListView檢索數據時花費更多時間

[英]More Time taking While retriving data from the ListView in c#

考慮ListView項,其中已經插入了兩列,其中包含超過35,000行。 現在,用戶從ListView中選擇任何30,000行。 我想讓所有“選定的項目”數據說(項目,子項目)

這是我的代碼。

ListView名稱 :lstViewData

        List<string> l_lstData = new List<String>();
        for(int l_nItem =0;l_nItem<lstViewData.SelectedItems.Count;l_nItem++)
        {
          l_lstData.Add(lstViewData.SelectedItems[l_nItem].Text+              
          lstViewData.SelectedItems[l_nItem].SubItems[1].Text);
        }

在我的PC上將花費半小時以上的時間(配置-IntelCore2Duo @ 2.40GHZ)。 ListView中選定項目的數量超過30,000

請告訴我解決方案,如果有人知道嗎?

您正在使用+運算符:

l_lstData.Add(lstViewData.SelectedItems[l_nItem].Text+lstViewData.SelectedItems[l_nItem].SubItems[1].Text);

如果有很多操作是不可變的,則不要在字符串上使用+運算符的情況下使用。 您應該使用StringBuilder

l_lstData.Add(sbuilder.Append(lstViewData.Seleteditems[l_nItem].Text).Append(lstViewData.SelectedItems[l_nItem].SubItems[1].Text).ToString());
sbuilder.Remove(0, sbuilder.Length);

sbuilderStringBuilder的實例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM