2012-08-10 58 views
-3

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

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); 

相反harcoding值2705,我想用变量instead.How使用它们?

对不起,我误解了这个问题。实际上我阻止了日历中的某些日期。现在使用

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

仅适用于非阻止日期。由于特定的一天,我试图与变量是一个封锁的,它不工作。现在请为我提供一个解决方案。我需要的只是点击一个日期(阻止或不阻止),我必须运行一个事件。我应该使用哪个事件?

+0

真的吗?你甚至尝试过使用变量吗? – sloth 2012-08-10 17:13:40

+0

你的编辑是一个完全不同的问题;你应该为此提出另一个问题(并将原文留在这里) – 2012-08-10 17:27:19

回答

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); 

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

0

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

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

阅读XML文件时可能相当容易。此外,如果您构建自己的树形数据结构来执行XML文件,它可能会很好。