LINQ 上的简单查询

发布于 2024-09-26 03:26:03 字数 497 浏览 2 评论 0原文

var q = from child in doc.Descendants("level")
        where (int)child.Attribute("id") == 55
        select (string)child.Element("Points").**Value.ToString()**;

我想在执行此查询后获取 q 作为类型字符串。即使在保留额外的粗体线之后,这也给了我一些 IEnumerable 类型。

好吧,让我这样说吧。我想让上面的查询类似于下面的查询,而运行时不会抛出任何错误。

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").**Value.ToString()**;

I would like to get q as a type string after executing this query. Even after keeping the extra bolded line this is giving me some IEnumerable type.

Well let me put it this way. I would like to make the above query something like below one without the runtime throwing any error.

string q = from child in doc.Descendants("level")
           where (int)child.Attribute("id") == 55
           select (string)child.Element("Points");

Any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

旧人哭 2024-10-03 03:26:03
var q = (from child in doc.Descendants("level")
        where (int)child.Attribute("id") == 55
        select (string)child.Element("Points")).FirstOrDefault();

Enumerable.FirstOrDefault 方法 (IEnumerable)

var q = (from child in doc.Descendants("level")
        where (int)child.Attribute("id") == 55
        select (string)child.Element("Points")).FirstOrDefault();

Enumerable.FirstOrDefault Method (IEnumerable)

眼角的笑意。 2024-10-03 03:26:03

LINQ总是返回一个可枚举的结果。要让它评估并返回一个结果,您可以使用

.First()

.FirstOrDefault()

.Single()

.SingleOrDefault()

根据您的要求。

LINQ will always return an enumerable result. To get it to evaluate and return one result you can use

.First()

.FirstOrDefault()

.Single()

.SingleOrDefault()

depending on your requirement.

农村范ル 2024-10-03 03:26:03

即使结果包含单个记录,查询也会返回 IEnumerable。试试这个 -

if q.count() > 0
    var singleQ = q.First();

或者如果你确定至少会有一条记录,那么就这样做 -

string q = (from child in doc.Descendants("level")
           where (int)child.Attribute("id") == 55
           select (string)child.Element("Points")).First();

The query will return IEnumerable even if the result contains single record. Try this -

if q.count() > 0
    var singleQ = q.First();

Or if you are sure that there will be atleast one record then do it like this -

string q = (from child in doc.Descendants("level")
           where (int)child.Attribute("id") == 55
           select (string)child.Element("Points")).First();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文