LINQ上的简单查询
问题描述:
var q = from child in doc.Descendants("level")
where (int)child.Attribute("id") == 55
select (string)child.Element("Points").**Value.ToString()**;
我想在执行此查询后将q作为类型字符串。即使保留了额外的粗体行,这也给了我一些IEnumerable类型。LINQ上的简单查询
那么让我这样说吧。我想让上面的查询类似于下面的查询,而不会在运行时抛出任何错误。
string q = from child in doc.Descendants("level")
where (int)child.Attribute("id") == 55
select (string)child.Element("Points");
任何帮助?
答
var q = (from child in doc.Descendants("level")
where (int)child.Attribute("id") == 55
select (string)child.Element("Points")).FirstOrDefault();
答
即使结果包含单个记录,查询也会返回IEnumerable。试试这个 -
if q.count() > 0
var singleQ = q.First();
或者如果你是肯定会有ATLEAST一个记录,然后像这样做 -
string q = (from child in doc.Descendants("level")
where (int)child.Attribute("id") == 55
select (string)child.Element("Points")).First();
答
LINQ将总是返回可枚举的结果。为了得到它的计算并返回一个结果,你可以使用
根据您的要求。
这是kewl ..感谢CD ..我爱上了这个LINQ的东西。 – async 2010-10-04 10:06:25