我是LINQ的新手
我写了以下查询:
var duplicate =
from loginId in DataWorkspace.v2oneboxData.me_employees
where loginId.me_login_name == this.me_login_name
&& loginId.me_pkey != this.me_pkey
select loginId;
我想计算结果副本中返回的行
我搜索过许多文章,说使用duplicate.Count()。但我在我的知识分子中看不到count()
我如何从结果算起
答案 0 :(得分:22)
如何使用扩展方法:
var count = me_employees.Where(me => me.me_login_name == this.me_login_name && me.me_pkey != this.me_pkey).Count();
更好:
var count = me_employees.Count(me => me.me_login_name == this.me_login_name && me.me_pkey != this.me_pkey);
BIG NOTE:确保您已引用System.Core。 System.Data.Linq也是如此,但我假设您已经引用它。
答案 1 :(得分:9)
您需要文件顶部的以下行:
using System.Linq;
但是Count
上缺少的引用上会出现一个小帮助图标,Visual Studio会自动添加该行。
<强>更新强>: 这是一个完整的可编辑示例:
using System.Linq;
namespace ConsoleApplication11 {
class Program
{
string me_login_name;
int me_pkey;
public static void Main()
{
new Program().Run();
}
private void Run()
{
IQueryable<v2oneboxDataEntity> me_employees = null;
var duplicate =
from loginId in me_employees
where loginId.me_login_name == this.me_login_name
&& loginId.me_pkey != this.me_pkey
select loginId;
var count = duplicate.Count();
}
// Define other methods and classes here
class v2oneboxDataEntity
{
public string me_login_name { get; set; }
public int me_pkey { get; set; }
}
}
}
您使用的是哪个版本的Visual Studio?什么是.NET框架的目标版本? (需要&gt; = VS 2008,&gt; = .NET 3.5。)
答案 2 :(得分:2)
如果您正在使用lambda表达式,请确保已引用System.Linq.Expressions
命名空间。
var cardCount = datatable
.AsEnumerable()
.Where(p => p.Field<decimal>("SpotID") ==
Convert.ToDecimal(currentActivatedSpot))
.Count();