所以问题是这个,我有一个针对我目前用于从XML文件的查询中检索数据的每个循环,然后将其放入字符串中; 像这样:
foreach (var value in dateQuery)
date = value.Element("HistoryCreation").Value;
Run Code Online (Sandbox Code Playgroud)
我知道一个事实(基于xml文件存储值和使用的查询的方式),dateQuery中只有一个值.
因此,我想知道(为了使我的程序更有效并学习如何更好地编码),有没有更好的方法来做到这一点,或者foreach是唯一的方法?
tst*_*ter 18
你可以使用:
dateQuery.First().Element("HistoryCreation").Value
Run Code Online (Sandbox Code Playgroud)
如果查询中有多个项目,则不会失败.如果您希望在有多个项目时失败,请使用Single
date = dateQuery.Single().Element("HistoryCreation").Value;
Run Code Online (Sandbox Code Playgroud)
如果您使用的是.NET 3.5或更高版本,则可以使用扩展方法Enumerable.Single
:
var value = dateQuery.Single();
date = value.Element("HistoryCreation").Value;
Run Code Online (Sandbox Code Playgroud)
那么如果你的假设'在dateQuery中只有一个值'是错误的,它将抛出一个异常.
马克答案是迄今为止最好的答案,但我把我的答案用于说明foreach循环.
foreach (var value in dateQuery) {
date = value.Element("HistoryCreation").Value;
break; // break current loop
}
Run Code Online (Sandbox Code Playgroud)