请问如何取得IEnumerable类型的元素个数?

liming1019 2011-04-11 11:32:11
IEnumerable<string> partNos = from item in xelem.Descendants("error")
select (string)item.Attribute("message");
请问如何取得partNos的元素个数?
...全文
2449 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 liming1019 的回复:]
谢谢,我就是想知道这就查询是否能查出数据,怎么判断呢?[/Quote]

IEnumerable<string> partNos = from item in xelem.Descendants("error")
select (string)item.Attribute("message");
if(partNos.FirstOrDefault()!=null)
{
//查出数据了
}

如果你就想判断能不能查出数据
可直接用.Any()方法
Dobzhansky 2011-04-11
  • 打赏
  • 举报
回复
通过这个接口只能走完才能知道
liming1019 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 gomoku 的回复:]

IEnumerable注重于列举,并不关心总数。实际上IEnumerable可以没有总数,或总数不确定。

C# code

class My : IEnumerable<int>
{
public IEnumerator<int> GetEnumerator()
{
while (true)
{
yield retu……
[/Quote]
谢谢,我就是想知道这就查询是否能查出数据,怎么判断呢?
liming1019 2011-04-11
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8" ?>
<result>
<error message="website id = 19 not found" />
</result>


XElement xelem = XElement.Parse(xml字符串);

IEnumerable<string> partNos = from item in xelem.Descendants("error")
select (string)item.Attribute("message");
// 接下来怎么判断呢?
gomoku 2011-04-11
  • 打赏
  • 举报
回复
IEnumerable注重于列举,并不关心总数。实际上IEnumerable可以没有总数,或总数不确定。


class My : IEnumerable<int>
{
public IEnumerator<int> GetEnumerator()
{
while (true)
{
yield return Environment.TickCount;
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}

兔子-顾问 2011-04-11
  • 打赏
  • 举报
回复
如果你能编译通过。说明你已经支持linq了。你添加了引用么?
using System.Linq;
liming1019 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 peter200694013 的回复:]

int result = 0;
using (IEnumerator<T> enumerator = partNos.GetEnumerator())
{ while (enumerator.MoveNext())
result++;
}
[/Quote]
没有MoveNext这个方法啊。
liming1019 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vrhero 的回复:]

partNos.Count()

为什么不去看MSDN,为什么不看看智能提示...
[/Quote]

查了,没有Count啊。
Peter200694013 2011-04-11
  • 打赏
  • 举报
回复
int result = 0;
using (IEnumerator<T> enumerator = partNos.GetEnumerator())
{ while (enumerator.MoveNext())
result++;
}
vrhero 2011-04-11
  • 打赏
  • 举报
回复
partNos.Count()

为什么不去看MSDN,为什么不看看智能提示...
兔子-顾问 2011-04-11
  • 打赏
  • 举报
回复
partNos.Count()
wanghui0380 2011-04-11
  • 打赏
  • 举报
回复
count
机器人 2011-04-11
  • 打赏
  • 举报
回复
xelem.Descendants("error").Count();

lz你在用notepad编码么?
liming1019 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 q107770540 的回复:]



IEnumerable<string> partNos = from item in xelem.Descendants("error")
select (string)item.Attribute("message");
if(partNos.FirstOrDefault()……
[/Quote]

还是不行啊。

111,111

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧