Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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一起转义和双引号_C#_String_Escaping_Literals_Double Quotes - Fatal编程技术网

C# 与Linq一起转义和双引号

C# 与Linq一起转义和双引号,c#,string,escaping,literals,double-quotes,C#,String,Escaping,Literals,Double Quotes,我正在编写一小段代码,在其中查找包含文件夹名=\u的XML中的所有节点。 我对字符串文字有问题,我尝试使用@和转义或双引号,但没有成功。代码如下: public class Folders { public static IEnumerable<string> FolderNames(string xml, char startingLetter) { string[] MyString; List<string> MyList = new List&

我正在编写一小段代码,在其中查找包含文件夹名=\u的XML中的所有节点。 我对字符串文字有问题,我尝试使用@和转义或双引号,但没有成功。代码如下:

public class Folders
{


public static IEnumerable<string> FolderNames(string xml, char startingLetter)
{
    string[] MyString;
    List<string> MyList = new List<string>();
    string item = "";

   StringSplitOptions.None)).ToList();

    MyString = xml.Split('>') ;

    var matchingvalues = MyString
.Where(stringToCheck => stringToCheck.Contains("<folder name=\\\""));

     return matchingvalues;
}

public static void Main(string[] args)
{
    string xml =
        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
        "<folder name=\"c\">" +
            "<folder name=\"program files\">" +
                "<folder name=\"uninstall information\" />" +
            "</folder>" +
            "<folder name=\"users\" />" +
        "</folder>";


      foreach (string name in Folders.FolderNames(xml, 'u'))
    Console.WriteLine(name);
    Console.ReadLine();
}
我该怎么写 var matchingvalues=MyString.WherestringToCheck=>stringToCheck.Contains ?

您甚至没有在FolderNames中使用startingLetter参数
您说您正在查找文件夹名=\u,但代码查找的是,主要问题并不是转义。 但事实上你重新发明了轮子

c语言中有多个xml解析器

Linq到xml就是其中之一。有了它,你可以写一些简单的东西,比如:

string xml =
  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
    "<folder name=\"c\">" +
        "<folder name=\"program files\">" +
            "<folder name=\"uninstall information\" />" +
        "</folder>" +
        "<folder name=\"users\" />" +
    "</folder>";

        XElement xElement = XElement.Parse(xml);
        IEnumerable<string>  values = xElement.
            Descendants("folder").
            Where(element => element.Attribute("name")?.Value?.StartsWith("u") == true).
            Select(element => element.Attribute("name").Value);
string xml =
  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
    "<folder name=\"c\">" +
        "<folder name=\"program files\">" +
            "<folder name=\"uninstall information\" />" +
        "</folder>" +
        "<folder name=\"users\" />" +
    "</folder>";

        XElement xElement = XElement.Parse(xml);
        IEnumerable<string>  values = xElement.
            Descendants("folder").
            Where(element => element.Attribute("name")?.Value?.StartsWith("u") == true).
            Select(element => element.Attribute("name").Value);