检查ComboBox.SelectedValue字符串的函数,如果为空则返回null

时间:2015-05-05 12:18:40

标签: c# combobox telerik extension-methods helper-functions

我有许多具有可选参数的函数,默认值为null,如下所示:

public static IEnumerable<Product> GetProducts(int? productCategoryId = null)

在我的linq where子句中,我通常喜欢检查是否这样:

if (productCategoryId == null || productCategoryId == p.ProductCategoryId)

在我的应用程序中,我通常必须将来自Telerik ComboBox的选定值传递到这样的函数中,以便可以过滤掉产品列表:

GetProducts(CategoryComboBox.SelectedValue);

C#不允许我这样做,因为如果用户没有在ComboBox中选择任何内容,则所选值是一个空字符串,这对我的函数不起作用,因为如果没有选择,我更喜欢发送NULL,否则他们所选择的内容的身份。

有关此扩展方法的建议或者C#/ Telerik ComboBox是否具有内置函数?这是我现在拥有的:

    public static int? ToNullableInt32(this string val)
    {
        int i;
        if (Int32.TryParse(val, out i)) return i;
        return null;
    }

在上面的例子中,我还需要让它将一个可空的int作为null返回,或者将所选的值作为int返回。

1 个答案:

答案 0 :(得分:0)

这是一个使用泛型的出色解决方案。我们在代码库中使用它。

Generic TryParse Extension method

一旦你有了,那么你就可以......

this.GetProducts(this.CategoryComboBox.SelectedValue.TryParse<int>());