无限重复列表(用无限重复序列压缩有限列表)

2023-12-07

UserList是一个字典列表,例如:

[
  {Name:"Alex",Age:25},
  {Name:"Peter",Age:35},
  {Name:"Muhammad",Age:28},
  {Name:"Raul",Age:29}
]

RowColorList是一个颜色列表:[#bcf,#fc0]

The new UserList应包含一个RowColor对于每个名字,按顺序取自RowColorList:

[
  {Name:"Alex",Age:25,RowColor:#bcf},
  {Name:"Peter",Age:35,RowColor:#fc0},
  {Name:"Muhammad",Age:28,RowColor:#bcf},
  {Name:"Raul",Age:29,RowColor:#fc0}
]

我尝试了以下代码:

UserList.Zip(RowColorList,(user,color) => user.Add("RowColor",color))

有了这个代码,新的UserList将仅包含与中一样多的条目RowColorList。我希望他从头开始RowColorList每当可用的颜色用完时,再次重复。如何?


您可以创建一个函数来返回无限可枚举的Color / string(或者任何类型的RowColor是),通过使用yield return作为惰性生成器:

public IEnumerable<Color> InfiniteColors()
{
    while (true)
    {   
        foreach (var color in RowColors)
        {
            yield return color;
        }
    }
}

然后可以将其与任何 Linq 一起使用IEnumerable扩展方法,例如Zip.

UserList.Zip(InfiniteColors(),(user,color) => user.Add("RowColor",color))

编辑-解释

之所以InfiniteColors不会挂起是因为状态机将在每个结果后返回给调用者,并且 Zip 将在第一个可枚举完成时终止,这是因为正在压缩的其他集合是有限的(即。UserList)

显然你不应该尝试Zip the InfiniteColors可枚举自身,也不应尝试实现InfiniteColors,即不要打电话InfiniteColors.ToList()或这样的:-):

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

无限重复列表(用无限重复序列压缩有限列表) 的相关文章

  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • 如何使用MemoryCache代替Timer来触发一个方法?

    以下方法通过等待已运行操作的结果来处理并发请求 对数据的请求可能会使用相同 不同的凭据同时出现 对于每组唯一的凭据 最多可以有一个GetCurrentInternal呼叫正在进行中 当准备就绪时 该呼叫的结果将返回给所有排队的服务员 pri
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 当另一个线程可能设置共享布尔标志(最多一次)时,是否可以读取共享布尔标志而不锁定它?

    我希望我的线程能够更优雅地关闭 因此我尝试实现一个简单的信号机制 我不认为我想要一个完全事件驱动的线程 所以我有一个工作人员有一种方法可以使用关键部分优雅地停止它Monitor 相当于C lock我相信 绘图线程 h class Drawi

随机推荐

  • 从数据集和数据表生成水晶报表

    我需要在一个应用程序中的 Crystal Reports 中生成一个报告 其中只有一个独立的数据集 未连接到任何类型的数据库 另外 我需要根据数据表中的值生成报告 能否请您指点一下 我是新手 我有一个模板 但我不知道如何从数据表生成报告 也
  • Spring Boot 错误:由于缺少 EmbeddedServletContainerFactory bean,无法启动 EmbeddedWebApplicationContext

    我正在尝试使用 Spring Data GemFire 将数据放入 GemFire 中 我跟着这个link Region stockdata public class StockInfo Id public String symbol pu
  • 通过 N 列块重塑 Pandas 数据框列

    我有 1 个数据框 其中的列块需要重新调整为行 我尝试使用 stack 和 Melt 但无法找到正确的方法 这是我期望的一个例子 data id a1 a2 a3 a4 year 20 20 19 18 b A 1 2 3 4 b B 5
  • 我在关于 c++ 的声明中遗漏了什么吗?

    除了声明 定义和预处理器指令之外 您不能在函数之外使用代码 这个说法准确吗 还是我遗漏了什么 我正在教我的侄子编程 他试图在 main 之前添加一个 while 循环 他还很年轻 我想给他一个他能理解的简单的硬规则 不完全是 你还可以将表达
  • 就渲染时间和性能而言,面板按什么顺序最有效?

    很多时候 多个面板都适合我想要的布局 但我知道不同面板类型的渲染时间存在差异 例如 MSDN指出 一个比较简单的Panel 例如Canvas 可以显着地 比更复杂的性能更好Panel 例如Grid 那么就渲染时间和性能而言 WPF 面板按什
  • NSNumber >= 13 不会保留。其他一切都会

    我当前正在处理的代码需要将 NSNumber 对象添加到数组中 所有值为 0 12 的 NSNumber 都可以正常添加 但 13 以后会导致 EXC BAD ACCESS 我打开 NSZombieEnabled 现在得到 CFNumber
  • IIS 站点节点不会扩展

    我昨天在本地 IIS 上添加了一个新网站 Windows 8 1 上的 IIS 8 5 添加后 IIS 无限期地挂在加载循环中 最终我不得不通过任务管理器终止它 昨晚很晚了 我屈服了 关掉了电脑 今天早上我的网站都不起作用 全部都返回了No
  • 将标题添加到 xtable

    我不确定这是 R 问题还是 Sweave 问题 我正在一个简单的表格中查看 2 个时间点的学生分数 3 年级和 6 年级 我已经创建了表格并打印出来 但是我想添加标签 以便人们知道哪个分数来自哪个年级 我的 Sweave 代码是 lt
  • 将 XML 转换为动态 C# 对象

    我使用以下 C 代码通过 JSON Net 框架将 JSON 数据字符串转换为动态对象 Creates a dynamic Net object representing the JSON data var ProductDB JsonCo
  • 尝试包含一个库,但不断收到“未定义的引用”消息

    我正在尝试使用 libtommath 库 我在 Ubuntu Linux 上的项目中使用 NetBeans IDE 我已经下载并构建了该库 我已经完成了 make install 以将生成的 a 文件放入 usr lib 并将 h 文件放入
  • Common Lisp,引用值和实际值

    考虑这段代码 defvar lst 1 1 defmacro get x x lst nth x lst defun get y y lst nth y lst 现在让我们假设我想更改名为的列表元素的值lst the car with ge
  • NSUndoManager 在 Swift 代码中转换 NSUndoManagerProxy 崩溃

    在我们的应用程序中 我们使用以下代码 let lInvocationTarget lUndoManager prepare withInvocationTarget self let lInvocationTarget as MyObjec
  • IE6 (IE7) 上的 JSON

    抱歉我的不耐烦 但是经过几周的熬夜并将我的网络上线后 我没有任何剩余的精力来调试 我只是无法谷歌如何在 IE6 和 IE7 上实现 JSON 我正在使用 JSON stringify 据我了解 JSON 不是内置在 IE6 7 上的 必须在
  • d3 单击圆圈暂停并恢复标记沿线的过渡

    我希望帮助纠正我的代码 单击标记圆圈元素以暂停或恢复该元素沿线的转换 我的代码沿一条线移动标记 我可以使用单击按钮元素来暂停和恢复此转换 但我希望能够单击标记圆圈本身 而不是按钮 我使用了各种参考资料 包括 http www nytimes
  • 如何在 PHP 中添加 href 链接? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我对 PHP 很陌生 并试图即时更新网站 我需要更新代
  • Python - Sqlite插入没有自动增量主键值的元组

    我创建一个带有主键和自动增量的表 with open RAND xml rb as f sqlite3 connect race db as connection c connection cursor c execute CREATE T
  • 计算多列每个字母的频率[重复]

    这个问题在这里已经有答案了 我有一个数据框如下 gt dfnew C1 C2 C3 C4 C5 C6 1 A A G A G A 2 A T T T G G 3 T A G A T A 4 C A A A A G 5 C A T T T C
  • SQLite iOS 插入数据

    我试图将一个名称插入到我的 sqlite 文件中 我正在使用此代码 但它不起作用 void InsertRecords NSMutableString txt if addStmt nil const char sql INSERT INT
  • 我需要使用 { get; 吗?放; } 具有在获取和设置时没有特殊操作的 C# 字段

    我一直在编写这样的类 public class ReportViewModel public string Status public string DataSource public String DataStore get set pu
  • 无限重复列表(用无限重复序列压缩有限列表)

    UserList是一个字典列表 例如 Name Alex Age 25 Name Peter Age 35 Name Muhammad Age 28 Name Raul Age 29 RowColorList是一个颜色列表 bcf fc0