使用RadComboBox和RadListBox的LINQ语句的问题

时间:2011-02-02 17:58:41

标签: c# asp.net linq telerik

我有这个rad组合框(又名下拉列表),项目“count”“sum”“max”“min” 我附加到RadListBox控件项,所以它出来像这样“Count(column1)” 在rcListBoxColumns2上。 然后我写这样的代码并得不到结果:

var ddlFunc = from cp in ddlFunctions.Items.ToList() select cp;
var rcLBC = from p in rcListBoxColumns2.Items.ToList() select p;


havingFilters.DataSource = (from p in rcLBC.ToList()
                                        from x in ddlFunc.ToList()
                                        where p.Value.Contains(x.Value)
                                        select new { Value = p.Value, Text = p.Text }).Distinct().ToList();

我可以使用调试器并查看ddlFunc和rcLBC,我注意到rcLBC的值应该“包含”下拉列表值,但我的结果是所有项目都被选中。无法弄清楚为什么contains语句没有过滤它。任何人的想法?

2 个答案:

答案 0 :(得分:0)

我假设你试图过滤Value,所以试试这个:

havingFilters.DataSource = (
    from p in rcLBC
    where (
        from x in ddlFunc
        where p.Value.Contains(x.Value)
        select x).Any()
    select new
    {
        Value = p.Value,
        Text = p.Text
    });

答案 1 :(得分:0)

我刚刚解决了它,显然我的ddlFunctions的值为“”< - 空字符串。这导致string.contains函数为任何字符串返回true。