-3

网。我有个疑问。我们如何在 LINQ 查询的 where 子句中引入用户定义的变量作为参数。我正在查询一个 XML 文件。这是我的代码

    XElement books = XElement.Load(@"Friends.xml");

var titles =
   from book in books.Elements("Friend")
   where (string)book.Element("Date") == "27" && (string)book.Element("Month") == "05"
   select book.Element("Name");

foreach (var title in titles)
   Console.WriteLine(title.Value);

我想使用变量而不是对值27和进行编码。如何使用它们?05

抱歉这个愚蠢的问题,我误解了这个问题。实际上,我正在阻止日历中的某些日期。现在使用

private void calendar1_SelectedDatesChanged(object sender, SelectionChangedEventArgs e)
        {....}

仅适用于非阻塞日期。由于我尝试使用该变量的某一天被阻止,因此它不起作用。现在请向我建议一个解决方案。我只需要点击一个日期(被阻止或未被阻止),我必须运行一个事件。我应该使用哪个事件?

4

2 回答 2

2

使用一个简单的变量:

 XElement books = XElement.Load(@"Friends.xml");
string yourDate = "27";
string yourMonth = "05";

var titles =
   from book in books.Elements("Friend")
   where (string)book.Element("Date") == yourDate  && (string)book.Element("Month") == yourMonth
   select book.Element("Name");

foreach (var title in titles)
   Console.WriteLine(title.Value);

等等。当然,根据您的代码和系统使用可读的好名称

于 2012-08-10T17:11:58.887 回答
0

此外,我认为您可以将具有适当属性的书籍类定义为 XML 标记。例如 :

class Book {
  string Date {...} //
}

读取 XML 文件可能非常容易。此外,如果您构建自己的树形数据结构来执行 XML 文件,那就太好了。

于 2012-08-10T17:17:30.997 回答