C# – dropdownlist items find by partial value

By | October 22, 2023

To find an item (and select it) in a dropdownlist using a value we simply do

dropdownlist1.Items.FindByValue("myValue").Selected = true;

How can I find an item using partial value? Say I have 3 elements and they have values “myValue one”, “myvalue two”, “myValue three” respectively. I want to do something like

dropdownlist1.Items.FindByValue("three").Selected = true;

and have it select the last item.

Best Solution

You can iterate from the end of the list and check if value contains the item (this will select the last item which contains value “myValueSearched”).

 for (int i = DropDownList1.Items.Count - 1; i >= 0 ; i--)
        {
            if (DropDownList1.Items[i].Value.Contains("myValueSearched"))
            {
                DropDownList1.Items[i].Selected = true;
                break;
            }
        }

Or you can use linq as always:

DropDownList1.Items.Cast<ListItem>()
                   .Where(x => x.Value.Contains("three"))
                   .LastOrDefault().Selected = true;
Category: Uncategorized