当前上下文中不存在名称“con”

2024-01-01

我正在尝试使用 LINQ 进行 group by 语句。我收到错误名称“con”在当前上下文中不存在。

在选择后的代码中,我试图获取ActivityID值,但列表“con”不可用。

List<Contribution> contributions =
    contLogic.GetAllContibutionsByActivityIDToList(ActivityID);

var groups = from con in contributions
             group con by con.Response
             into gResponse
             select new
             {
                grop = gResponse.Count(),
                con.ActivityID
             };

我看过微软的示例,但我不知道我做错了什么。

微软样本:

List<Product> products = GetProductList();

var orderGroups = from prod in products
                  group prod by prod.Category into prodGroup
                  select new { Category = prodGroup.Key, Products = prodGroup };

ObjectDumper.Write(orderGroups, 1);

The into子句是一个查询延续子句。查询延续从范围中删除所有先前的范围变量进而引入一个新的范围变量.

这可能并不完全清楚。让我举一个例子来更好地演示它。

我有棕色的眼睛;我姐姐有蓝眼睛。假设我们想找到所有像我一样的人:棕色眼睛的人和蓝眼睛的兄弟姐妹。我们可以这样做:

var parentsWithABlueEyedChild = 
    from parent in parents 
    where parent.Children.Any(c=>c.EyeColor == Blue) 
    select parent;

var brownEyedChildren = 
    from parentWithABlueEyedChild in parentsWithABlueEyedChild
    from child in parentWithABlueEyedChild.Children 
    where child.EyeColor == Brown 
    select child;

好的,您有两个疑问。第二个查询对结果进行操作第一个查询的。现在,您同意“parent”不在第二个查询的范围内,对吧?“父”范围变量仅在声明它的查询中才有意义。

您可以将这两个查询合并为一个查询,如下所示:

var brownEyedChildren = 
    from parentWithABlueEyedChild in (
        from parent in parents 
        where parent.Children.Any(c=>c.EyeColor == Blue) 
        select parent)
    from child in parentWithABlueEyedChild.Children 
    where child.EyeColor == Brown 
    select child;

同样,这里很清楚“父级”仅在“内部”查询的范围内,对吗?

但与第一种语法相比,这种语法很难阅读;为什么“parentWithABlueEyedChild”在使用之前引入了三行?第一个版本更加清晰。我们可以将其放入一个查询中,同时通过查询延续保持第一个版本的可读性:

var brownEyedChildren = 
    from parent in parents 
    where parent.Children.Any(c=>c.EyeColor == Blue) 
    select parent into parentWithABlueEyedChild
    from child in parentWithABlueEyedChild.Children 
    where child.EyeColor == Brown 
    select child;

That's 与前两个版本完全相同。继续只是为了方便。parent不在延续子句的范围内,因为如果将它们写为两个查询,它就不在范围内。

现在是否清楚为什么“con”不在您的延续范围内?您的查询

var q = 
    from con in contributions
    group con by con.Response
    into gResponse
    select new 
    {
        grop = gResponse.Count(),
        con.ActivityID
    }; 

完全一样

var gResponses = 
    from con in contributions
    group con by con.Response;
var q =
    from gResponse in gResponses
    select new 
    {
        grop = gResponse.Count(),
        con.ActivityID
    }; 

“con”不在第二个查询的范围内;它只是第一个查询的一部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当前上下文中不存在名称“con” 的相关文章

  • 未提供参数时如何指定 C# System.Commandline 行为?

    在我的控制台应用程序中 当未提供控制台参数时 将执行我指定列表 在本例中为参数 3 的任何处理程序 调用该处理程序时 布尔参数设置为 false 但对我来说 根本不调用它更有意义 如何防止这种情况发生并显示帮助文本 using System
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 如何在c++中读取pcap文件来获取数据包信息?

    我想用 C 编写一个程序来读取 pcap 文件并获取数据包的信息 例如 len sourc ip flags 等 现在我找到了如下代码 我认为它会帮助我获取信息 但是我有一些疑问 首先我想知道应该将哪个库添加到我的程序中 然后什么是 pca
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • 外键与独立关系 - Entity Framework 5 有改进吗?

    我读过了several http www ladislavmrnka com 2011 05 foreign key vs independent associations in ef 4 文章和问题 https stackoverflow
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 使用 C# 读取 Soap 消息

  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐