检测到LINQ到XML XElement的不可达代码

本文关键字:代码 XElement LINQ XML 检测 | 更新日期: 2023-09-27 18:16:41

我试图在c#中使用LINQ从XML文件中抓取值,它给我一个警告说

"class System.Xml.Linq.XElement表示一个XML元素。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml.Linq;
namespace BDiamond
{
    public class Login
    {
        private string email ;
        private bool isValid = false;
        private string bdConfigFile = "BDiamond.xml";
        public bool VerifyEmail(string e)
        {
            string email = e;
            //Grab element values that match the Email attribute in XML file
            XElement root = XElement.Load(bdConfigFile);
            IEnumerable<XElement> list1 =
                from el in root.Elements()
                where el.Attribute("Email") != null
                select el;
        }
    }
}

检测到LINQ到XML XElement的不可达代码

我不确定您是否提供了实际的代码,但是您缺少的是返回语句,并且它不是警告它是错误。显然,这段代码没有生成任何警告。你可以像这样在方法的末尾添加一个return语句:

return list1.Any();

或者你可以在一个语句中完成:

public bool VerifyEmail(string e)
{
     string email = e;
      //Grab element values that match the Email attribute in XML file
      XElement root = XElement.Load(bdConfigFile);
      return root.Elements().Any(el => (string)el.Attribute("Email") == email);
}

我猜你应该比较Email属性的值与参数email,否则它没有任何意义。如果你知道哪个元素拥有Email属性,你可以这样写:

return root.Descendants("ParentElement")
      .Any(el => (string)el.Attribute("Email") == email);

不遍历所有元素