从 linq 在新对象中创建新属性

2024-01-02

所以我正在执行 linq-to-sql 查询,结果以 IEnumerable 形式出现。从此列表中,我为返回的每个结果创建一个新对象。我已经使用的存储过程正在按我想要的顺序返回对象。我们有一个排行榜,查询后结果按降序排列。我遇到问题的部分是我想将排名添加到新对象的新属性中。

说我有这个代码

 var usersSummary = Context.[myStoredProcedure]
            return usersSummary.Select(x => new [myObject]
            {
                UserId = x.UserID,
                FirstName = x.FirstName,
                LastName = x.LastName,
                TotalPoints = x.TotalPoints,
                LeaderBoardRank = //this part here
                Email = x.Email,
                CreatedDate = x.CreatedDate
            }).OrderByDescending(x => x.TotalPoints).ToList();

我想要LeaderBoardRank来作为他们的排名。它们已经按排名顺序排序,因此第一个对象将是 1 ,下一个对象是 2 ,依此类推。由于这不是正常的 C# 循环,我不太确定如何用排名填充此属性。


Select作为您可以使用的索引的重载。

    var usersSummary = Context.[myStoredProcedure]
        return usersSummary.Select((x, i) => new [myObject]
        {
            UserId = x.UserID,
            FirstName = x.FirstName,
            LastName = x.LastName,
            TotalPoints = x.TotalPoints,
            LeaderBoardRank = i
            Email = x.Email,
            CreatedDate = x.CreatedDate
        }).OrderByDescending(x => x.TotalPoints).ToList();

您正在创建的对象是否已经是列表中的对象?在这种情况下,您不必创建新对象,只需将值分配给现有对象即可:

    var usersSummary = Context.[myStoredProcedure]
        return usersSummary.Select((x, i) => 
            {
                x.LeaderBoardRank = i;
                return x;
            }).OrderByDescending(x => x.TotalPoints).ToList();

此外,如果您的清单已订购,则无需再次订购。您的 select 语句不会更改顺序。

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

从 linq 在新对象中创建新属性 的相关文章

随机推荐

  • ReferenceError:未定义 TextEncoder

    我正在 Linux 上的 Firefox 24 中编写一个简单的插件 我收到错误 ReferenceError TextEncoder is not defined 当我这样做时 var编码器 new TextEncoder 我正在使用的功
  • UIButton UIControlEventTouchUpInside 不会触发,但 UIControlEventTouchDown 会触发

    我正在实施UIButton and my UIControlEventTouchUpInside事件不会触发 即使UIControlEventTouchDown确实会着火 UIButton btnClose UIButton buttonW
  • 解决“浮点上下文中的整数除法”警告

    如何解决这一行代码中的 浮点上下文中的整数除法 警告 int fps 60 double timePerTick 1000000000 fps 除二时ints 您将使用整数除法 然后将结果提升为双精度 失去小数点后的所有精度 您可以通过使用
  • TortoiseSVN 无法连接 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个 apache svn 服务器在共享托管 Linux 帐户上运行 症状是我可以使用 PuTTY 连接到托管 svn 的服务器 但Tortois
  • getElementsByClassName 在 Chrome 中到底是如何工作的?,特别是 w.r.t.节点列表和 DOM

    以下所有结果都是使用 Google Chrome v36 及其控制台获得的 在调试 WordPress 插件时 我发现运行这个小 Javascript 片段 console log document getElementsByClassNa
  • 使用应用内购买购买真实商品

    我正在开发一个 iPhone 应用程序 在我的应用程序中 我有一个发送实物礼物的功能 因此我们决定在应用程序购买中使用 我已阅读Apple有关应用内购买的文档 但它不允许实体商品 如果有替代方案 请告诉我 确实 你是对的 Apple 不允许
  • 如何在浏览器本地存储中存储由 jQuery 创建的元素?

    我正在使用 jQuery 添加 删除输入字段 ul li class input append li ul
  • Dart - 数字格式

    有没有办法与NumberFormat显示 如果双精度值为 15 00 则为 15 15 50 如果双精度值是 15 50 感谢您的帮助 事实上 我认为一起去更容易truncateToDouble https api dartlang org
  • 什么是WordArray?

    我一直在看加密js https github com brix crypto js and 它的编码器 https github com brix crypto js blob develop docs QuickStartGuide wi
  • 从 Ant 调用 FindBugs:将空格分隔的文件列表传递给 java

    我正在尝试从 Ant 内部调用 FindBugs 为了控制 FindBugs 可用的内存量 我选择不使用 ant task 我现在遇到的问题是我想在命令行上将一些jar传递给FindBugs java jar findbugs jar fo
  • Rails:如何将 add_index 添加到现有表

    我已经迁移了一个名为 units 的表 其中包含多个列 我想知道如何使用 cmd 将独立的 add index 迁移到该表 这段代码是否正确 class AddIndexToUnits lt ActiveRecord Migration d
  • 将未知行数添加到“静态单元格”UITableView

    我在 Interface Builder 中创建了一个静态表 其中包含 6 个部分 每个部分的行数都不同 我现在想添加具有不同行数的第七部分 首先 一旦我取消注释 Xcode 插入的标准表委托方法 我就会在 self tableView t
  • 结构变量不会因赋值而改变

    struct st int a1 3 int a2 2 int a3 1 void main void x a3 1 if x a3 1 printf TRUE n else printf FALSE n x a3 1 if x a3 1
  • 如何相对于背景图像宽度定位元素

    注意 我没有 JS 访问权限 这必须通过 CSS 来完成 我的背景图像 850 x 1080 位于屏幕右下角 我对图像进行了缩放 使其占据宽度的 38 background position right bottom background
  • java.io.FileNotFoundException:类路径资源

    import org springframework beans factory BeanFactory import org springframework beans factory xml XmlBeanFactory import
  • Flutter:从 Future 获取价值的正确方法

    我有一个返回图像目录路径的函数 它执行一些额外的检查 例如目录是否存在 然后它会做出相应的行为 这是我的代码 Future
  • 我可以欺骗 HttpRequest.Current.Request.IsLocal 吗?

    我正在运行一个 Web 应用程序 如果在本地运行 它会显示一些调试行为 资源字符串周围的引号等 并且我想在我无法访问互联网的会议上在我的笔记本电脑上演示该应用程序 所以它必须是本地的 应用程序使用 HttpContext Current R
  • 复制文件而不覆盖

    我只是似乎无法在命令行上找到一种方法来表示 将目录 A 中的所有文件复制到目录 B 中 但如果该文件已存在于目录 B 中 则不要覆盖它 无论哪个文件较新 并且不要提示我 我已经经历过复制 移动 xcopy 和 robocopy 我能得到的最
  • 使用 DSC 无人值守安装 .net Framework 4.6.2

    我正在尝试以自动方式在许多服务器上安装 4 6 2 不实施 WSUS 或其他方式 我的目标是利用 PowerShell DSC 因为我们正在以这种方式配置其他方面 但是 我尝试过的资源 xWindowsUpdate 中的 xHotfix 和
  • 从 linq 在新对象中创建新属性

    所以我正在执行 linq to sql 查询 结果以 IEnumerable 形式出现 从此列表中 我为返回的每个结果创建一个新对象 我已经使用的存储过程正在按我想要的顺序返回对象 我们有一个排行榜 查询后结果按降序排列 我遇到问题的部分是