亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有效地檢查 DataTable 中的任何單元格是否包含子字符串

有效地檢查 DataTable 中的任何單元格是否包含子字符串

C#
絕地無雙 2022-11-21 21:21:42
我使用下面的代碼允許用戶DataTable通過搜索可能位于任何列或任何行中的特定字符串來過濾 a。代碼需要刪除值不存在的行,因為DataTable在操作后導出。此代碼的問題有兩個:1) 對于較大的表,它非常慢,以及 2) 它只能找到一個單元格的完整內容(即,如果列“Name”有一行值為“Andrew “用戶應該能夠搜索“drew”或“and”并獲得該結果;現在,如果他們搜索“Andrew”,它將返回該行)。if(!String.IsNullOrEmpty(combo1Text) || !String.IsNullOrEmpty(combo2Text)                && !String.IsNullOrEmpty(search1Text) && !search1Text.Contains("Type your search for" + comboText + "here"))            {                for (int i = tab1table.Rows.Count - 1; i >= 0; i--)                {                    DataRow dr = tab1table.Rows[i];                    if (!dr.ItemArray.Contains(search1Text))                    {                        dr.Delete();                        tab1table.AcceptChanges();                    }                    percentprogress++;                    worker.ReportProgress(percentprogress);                }            }進行我想要的過濾的最佳方法是什么(并且如此有效地進行過濾,以便它不僅僅是遍歷所有內容)?
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

要搜索單元格內容是否包含搜索到的文本,請嘗試以下代碼:


for (int i = tab1table.Rows.Count - 1; i >= 0; i--)

{

    DataRow dr = tab1table.Rows[i];

    if (!dr.ItemArray.Any(x=>(x as string).Contains(search1Text)))

    {

        dr.Delete();

    }

    percentprogress++;

    worker.ReportProgress(percentprogress);

}

tab1table.AcceptChanges();

如果您有任何不是字符串類型的列,則應替換(x as string)為x.ToString()


查看完整回答
反對 回復 2022-11-21
  • 1 回答
  • 0 關注
  • 162 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號