Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Linq中第一个DDL的值填充DDL_C#_Linq - Fatal编程技术网

C# 使用Linq中第一个DDL的值填充DDL

C# 使用Linq中第一个DDL的值填充DDL,c#,linq,C#,Linq,我正在使用国家DDL中的文本填写国家DDL foreach (var VARIABLE in ProfileMasterDAL.bindcountry()) { if (VARIABLE.ToString().Contains(DropDownList1.SelectedItem.Text)) { var query = from row in ProfileMa

我正在使用国家DDL中的文本填写国家DDL

   foreach (var VARIABLE in ProfileMasterDAL.bindcountry())
            {
                if (VARIABLE.ToString().Contains(DropDownList1.SelectedItem.Text))
                {
                    var query = from row in ProfileMasterDAL.bindstate().ToString()
                                where
                                    ProfileMasterDAL.bindstate().ToString().Contains(DropDownList1.SelectedItem.Text)
                                select row;
                    DropDownList2.DataSource = query;
                    DropDownList2.DataBind();
                }
            }
但在查询时,我得到的枚举不会产生任何结果,并且状态DDL为空

    public static IEnumerable bindstate()
    {
        var states = from b in getdata().Descendants("state").SelectMany(state => state.Elements("text"))
        orderby (string) b
        select (string) b;

        return states;

    }

好的,根据你的评论和问题的更新,我认为这就是你想要的:

foreach (var VARIABLE in ProfileMasterDAL.bindcountry())
{
    if (VARIABLE.ToString().Contains(DropDownList1.SelectedItem.Text))
    {
        var query = from row in ProfileMasterDAL.bindstate()
                    where row.Contains(DropDownList1.SelectedItem.Text)
                    select row;
        DropDownList2.DataSource = query;
        DropDownList2.DataBind();
    }
}

您正在
foreach
中设置
数据源
,这意味着您可能会多次设置它,这不是一个好方法。另外,您正在查看州是否包含国家名称?那太尴尬了。最后,当您调试它时,您是否曾经进入该
if
?为什么要尝试从字符串中选择某个内容?这最终是对
char[]
的查询,当然这不是您想要的?我正在查找包含州名称的国家/地区。是的,我进入了if条件,在查询时遇到了问题。什么是
ProfileMasterDAL.bindstate()
return?IEnumerable状态集合问题是我无法获取where子句,并且包含intellisense无法显示它们。您无法获取intellisense,因为您的
bindstate()
方法只是返回一个
IEnumerable
,intellisense无法检查和提供更多信息。如果您将该方法更改为返回
IEnumerable
,您将获得更多信息。当我将该方法更改为返回XElement时,我在返回状态处遇到错误,因为无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Collections.Generic.IEnumerable”。存在显式转换(是否缺少转换?@Chandrasekhar Ok将其更改回
IEnumerable
,就像您所做的那样,我更新了我的答案。尽管我遇到了错误,但找不到源类型“System.Collections.IEnumerable”的查询模式的实现找不到的地方。考虑显式指定范围变量“行”的类型。