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# C LINQ到XML返回的结果_C#_Linq_Linq To Xml - Fatal编程技术网

C# C LINQ到XML返回的结果

C# C LINQ到XML返回的结果,c#,linq,linq-to-xml,C#,Linq,Linq To Xml,我正在尝试为WPF应用程序创建一个简单的登录页面。我正在使用以下XML文件: 测试1 1测试 我是LINQ的新手,不知道如何获取任何信息或将结果分配给变量 现在我有: XDocument users = new XDocument("users.xml"); var queryResults = from u in users.Root.Descendants("user") where u.Element("

我正在尝试为WPF应用程序创建一个简单的登录页面。我正在使用以下XML文件:

测试1 1测试

我是LINQ的新手,不知道如何获取任何信息或将结果分配给变量

现在我有:

        XDocument users = new XDocument("users.xml");

        var queryResults =
            from u in users.Root.Descendants("user")
            where u.Element("username").Value == tbUserName.Text && u.Element("password").Value == pbPassword.Password
            select u;

        foreach (var item in queryResult)
        {
            Console.WriteLine(item);
        }
因此,如果我的查询是正确的,它将把用户名和密码写入控制台(如果xml文件中存在登录值)。这是我所能理解的。我不知道接下来要做什么来验证或验证用户登录。任何帮助或想法都很好。

如果queryResults不是空的,则用户名和密码是正确的,因此您可以这样做:

if (queryResults.Any())
{
    // log user in, let him continue
}
else
{
    // user name or password is incorrect, let the user know and possibly try again
}

您应该查看LinqPad,它允许您动态运行这些类型的查询。它很整洁当我在控制台应用程序中测试查询时,它可以工作。由于WPF程序中的某些原因,我得到:不能将非空白字符添加到内容中。我不知道这是什么意思。@user,这可能意味着您的XAML格式不正确,请检查一下。问题是:XDocument users=new XDocumentusers.xml;它应该是:XDocument users=XDocument.Loadusers.xml;我正在实例化一个新的空白XML文件,而不是加载XML文件。因此出现了空白。非常感谢你的帮助!