【问题标题】:problem with a LINQ statement using RadComboBox and RadListBox使用 RadComboBox 和 RadListBox 的 LINQ 语句问题
【发布时间】:2011-02-02 17:58:41
【问题描述】:

我有这个 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 语句没有过滤它。有什么想法吗?

【问题讨论】:

  • 不太清楚您要达到的目标。您能否向我们展示 ddlFunctions 和 rcListBoxColumns2 的示例值,以及您对这些输入的预期结果?
  • 抱歉不清楚。我确实提到了 ddlFunctions 的值:“COUNT”“SUM”“MAX”“MIN”。当我的 rcListBoxColumn2 中有一个值例如:“COUNT(ColumnName)”或“MAX(ColumnName2)”时,我想检查字符串是否包含来自 ddlFunctions 的值,基本上我正在清除 rcListBoxColumn2 中的项目具有附加到它们的功能。
  • @user354303:好的,所以您尝试使用string.Contains,而不是LINQ Contains。我明白了。

标签: c# asp.net linq telerik


【解决方案1】:

我假设您正在尝试过滤 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
    });

【讨论】:

  • 我试过了,我得到了相同的结果,像以前一样恢复了所有值
【解决方案2】:

我刚刚解决了,显然我的 ddlFunctions 的值为 ""

【讨论】:

  • 是的,我想这样就可以了。这是它有助于提供输入和预期输出的具体示例的原因之一。抱歉,我无法提供更多帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-04
  • 2017-10-29
  • 1970-01-01
  • 2011-01-03
相关资源
最近更新 更多