网。我有个疑问。我们如何在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)
{....}
仅适用于非阻止日期。因为我尝试使用变量的某一天是一个被阻止的,它不起作用。现在请为我建议一个解决方案。我只需要点击一个日期(阻止或非阻止),我必须运行一个事件。我应该使用哪个事件?
答案 0 :(得分: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);
等等。当然,使用可根据您的代码和系统读取的好名称
答案 1 :(得分:0)
此外,我认为你可以定义一个具有适当属性的书类作为XML标签。例如:
class Book {
string Date {...} //
}
阅读XML文件时可能非常容易。此外,如果您构建自己的执行XML文件的树数据结构,那就太好了。