日期:2014-05-20  浏览次数:20709 次

求一LINQ查询语句.
XML文件如下格式
<?xml version="1.0" encoding="utf-8"?>
<用户>
  <USer Name="张三">
  <SendTime>2009-6-19 1:53:35</SendTime>
  </USer>
  <USer Name="李四">
  <SendTime>2009-6-19 1:53:35</SendTime>
  </USer>
</用户>


代码中有 如果下数组
Dim o_strlist As New List(Of String)
  o_strlist.Add("王小")
  o_strlist.Add("张三")
  o_strlist.Add("汪一")


想要的查询语句是 查出 o_strlist 里面 的名称没在 XML 文件的Name里出现过的 名称保存 到 o_strTmp 里。也就是下面的代码?号部分。

Dim o_root As XElement = XElement.Load(o_strPatch)
Dim o_strTmp As List(Of String) = From ????????????????????

------解决方案--------------------
再来一次:
C# code

            List<string> list = new List<string>();
            list.Add("王小");
            list.Add("张三");
            list.Add("汪一");
            XElement file = XElement.Load(@"../../Info2.xml");
            var query = from item in list
                        let elems = from elem in file.Elements()
                                    select (string)elem.Attribute("Name")
                        where elems.Contains(item) == false
                        select item;

            foreach (var e in query)
            {
                XElement temp = new XElement("USer",
                    new XAttribute("Name", e),
                    new XElement("SendTime", "新时间")
                    );
                file.AddFirst(temp);
            }
            Console.WriteLine(file);