【发布时间】:2011-03-07 07:22:18
【问题描述】:
您好,我实现了一个字典对象:
public partial class Window1 : Window
{
...
public Dictionary<string, string> Dictionarycheck = new Dictionary<string, string>();
public Window1()
{
Dictionarycheck.Add("Execbuildstartingmail", "Execbuildstartingmail");
Dictionarycheck.Add("Execbuildlastmail", "Execbuildlastmail");
...
}
}
然后我有要解析的 xml 文件。我有超过 1 个这样的目标要解析。我应该解析属性“if”的字符串,所以在这里我需要“Execexample”作为字符串。
<project>
...
<target if="Execexample">
...
</target>
...
</project>
为了做这个解析,我尝试实现这个代码(我不确定它是否正确):
private void xmlparsingButton_Click(object sender, RoutedEventArgs e)
{
XDocument xmlDoc = XDocument.Load(@"C:\Build.xml");
var abc = from target in xmlDoc.Descendants("target")
select (string)target.Attribute("if");
foreach(string target in abc)
{
// check this value whether if it exist in the dictionary.
// if not create a checkbox for it.
}
}
对于“foreach”语句,我应该检查字典对象。如果字典中没有这样的值,我将在我的 tabitem 5 中创建一个复选框,并将名称作为字符串(例如 ExecexamplecheckBox)。
我应该如何实现这样的foreach函数?
编辑 1: 我忘了添加一些东西。如果选中这些新复选框,我需要将文本写入文本文件。我怎么做?他们需要写入之前写入的文本文件。
【问题讨论】:
-
@jeremychan,仍在消化您的问题,但似乎您应该/可以使用 HashSet
而不是 Dictionary 。 -
@jackiekirby 嗨,感谢您的意见,我会继续阅读
-
@jeremychan,你怎么知道这个复选框?那是复选框的名称是什么?它是您的字典项目的名称吗?另外,请非常清楚您需要了解/学习的内容。看起来您期待的是一个完整的工作解决方案,而不仅仅是可以帮助您实现目标的示例代码。
-
@jeremychan,您说“如果选中复选框,我需要在文本文件中写入一行,我该怎么做?”。做什么,在文本文件中写一行或者查看一个复选框是否被选中,或者找到一个复选框,看看它是否被选中?
-
@shiv kumar,您好,我只是不确定您是否完全理解我的问题,因此我必须确保我提出有关您的解决方案的问题