簡體   English   中英

如何過濾與字符串模式匹配的組合框C#

[英]How to filter a Combo box matching string pattern c#

我的組合框包含諸如DBaaaaa,DBbbbbb,Dbccccc,FBaaaaa,FBcccc之類的值,這些值來自數據庫。 我想當用戶從組合框中選擇一個值時,它應該匹配Prefix(“ DB”,“ FB”)和所選值的長度。 並且必須根據匹配的模式過濾組合框。

Regex filter = new Regex("^[a-zA-z][a-zA-z][a-zA-Z0-9]*");

例如,如果用戶選擇了DBaaaaa。 現在,組合框應包含從“ DB”開始的所有值及其匹配的長度。 像DBbbbbb,Dbccccc。

如果我只是簡單地說,如果數據庫中有成千上萬條記錄,則它是一種過濾數據的方法。

由於信譽低下,我無法添加評論,因此我必須以評論作為答案。 為什么不創建兩個組合框,並且僅當選擇了第一個組合框時才填寫第二個組合框。 因此,您可以在代碼中執行一個簡單的if語句。

假設您具有完整的字符串列表,則可以在ComboBox SelectedIndexChanged/SelectedValueChanged事件中處理該字符串

就像是:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    var comboBox = sender as ComboBox;
    if (comboBox.SelectedItem != null)
    {
        string selectedItem = comboBox.SelectedItem.ToString();
        comboBox.Items = myDataSource.Where(x => x.StartsWith(selectedItem.Substring(0, 2))
                                              && x.Length.Equals(selectedItem.Length));
    }
}

暫無
暫無

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

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