交错电子邮件地址数组,避免具有相同域的项目连续

2024-02-10

我正在寻找一种在 C# 中对电子邮件地址数组进行排序的有效方法,以避免具有相同域的项目连续。

数组内的电子邮件地址已经是不同的,并且全部都是小写。

Example:

给定一个包含以下条目的数组:

[email protected] /cdn-cgi/l/email-protection
jane_d[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection

我想获得类似于以下内容的东西:

[email protected] /cdn-cgi/l/email-protection    
patric[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection

借助扩展方法(从https://stackoverflow.com/a/27533369/172769 https://stackoverflow.com/a/27533369/172769),你可以这样:

List<string> emails = new List<string>();
emails.Add("[email protected] /cdn-cgi/l/email-protection");
emails.Add("[email protected] /cdn-cgi/l/email-protection");
emails.Add("[email protected] /cdn-cgi/l/email-protection");
emails.Add("[email protected] /cdn-cgi/l/email-protection");

var q = emails.GroupBy(m => m.Split('@')[1]).Select(g => new List<string>(g)).Interleave();

The Interleave方法定义为:

public static IEnumerable<T> Interleave<T>(this IEnumerable<IEnumerable<T>> source )
{
    var queues = source.Select(x => new Queue<T>(x)).ToList();
    while (queues.Any(x => x.Any())) {
        foreach (var queue in queues.Where(x => x.Any())) {
            yield return queue.Dequeue();
        }
    }
}

所以基本上,我们根据电子邮件地址的域部分创建组,将每个组投影(或选择)到List<string>,然后“交错”这些列表。

我已经针对您的示例数据进行了测试,但可能需要更彻底的测试才能找到边缘情况。

DotNetFiddle 片段 https://dotnetfiddle.net/DXDZvj

Cheers

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

交错电子邮件地址数组,避免具有相同域的项目连续 的相关文章

  • 拉伸数组

    我有一个形成曲线的样本向量 假设其中有 1000 个点 如果我想将其拉伸到填充 1500 个点 给出不错结果的最简单算法是什么 我正在寻找一些只有几行 C C 的东西 我总是想增加向量的大小 并且新向量可以是当前向量大小的 1 1 倍到 5
  • Matlab中反转一位逻辑位

    是否存在更好的方法来反转 X 的元素 gt gt X dec2bin 10 X 1010 我这样做了 x i num2str 1 str2num x i 如果我理解正确的话 你想将一位设置为 1 使用bitset bitset x bitN
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 从邻接表计算图的入度

    我遇到了这个问题 其中需要根据邻接列表表示来计算图的每个节点的入度 for each u for each Adj i where i u if i u E in degree u 1 现在根据我的说法 它的时间复杂度应该是O V E V
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 使用 php 和 symfony 从数组创建 Excel 文件

    我正在尝试使用 PHP 和 symfony 将数组导出为 XLS 文件 如下面的代码所示 创建 XLS 文件后 我只能获取数组的最后一行 并且它显示在文件的第一行中 似乎 lignes 变量没有增加 我不明白出了什么问题 有人可以帮忙吗 f
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable

随机推荐

  • 如何解析单个 TFrecord 文件

    读取 tfrecords reader tf TFRecordReader serialized example reader read filename queue features tf parse single example TFR
  • 抛出异常时获取堆栈跟踪

    我现在正在调试一个使用许多不同线程的程序 有时会抛出异常 问题是无法知道哪个线程导致了问题 有没有一种简单的方法可以在抛出异常后获取堆栈跟踪 我想过简单地编写一条调试消息 但这将是一个巨大的 我想有比这个更好的技术 我正在使用 Visual
  • 如何将 BigQuery 脚本上传到 Github?

    需要一些帮助 因为 bigquery 脚本没有保存在本地 并且无法将其上传到 Github 您可以使用支持 GitHub 的 BigQuery 第三方 IDE这是歌利亚 一部分Potens io https potensio zendesk
  • 如何在flask应用程序的同一页面上发布输出结果?

    我有一个 Flask 应用程序 它接受一些文本作为输入 运行 python 脚本并在同一 html 页面上输出输出 但它会转到一个新页面 我不明白为什么它会转到新页面 这是我的 app py 文件 usr bin env python3 f
  • 如何确定 Pandas/NumPy 中的列/变量是否为数字?

    有没有更好的方法来确定变量是否在Pandas and or NumPy is numeric或不 我有一个自定义的dictionary with dtypes作为钥匙和numeric not作为价值观 In pandas 0 20 2你可以
  • Errno 13 运行 virtualenv 时权限被拒绝

    当尝试在 Mac OS X 上使用brew安装的 Python 2 7 创建 virtualenv 时 出现以下错误 Could not install packages due to an EnvironmentError Errno 1
  • 使用 Lucene 和 Java 进行分词、删除停用词

    我正在尝试使用 Lucene 从 txt 文件中标记并删除停用词 我有这个 public String removeStopWords String string throws IOException Set
  • AngularJS:根据条件ng-grid更改单元格的颜色

    这里是plnkr http plnkr co edit rPYJ1tGmnarEjf3io1d6 p preview代码 我想改变颜色age其所有行的单元格alert财产是真实的 我不知道该怎么做 我没有单独的警报列 Here you go
  • ViewPager 上的 onClick 未触发

    我在 a 上设置了一个点击侦听器ViewPager 但 onClick 事件永远不会被调用 我猜触摸事件检测ViewPager很干扰 但我不知道如何解决它 有人可以帮忙吗 Thanks mViewPager setOnClickListen
  • 生成数字序列[重复]

    这个问题在这里已经有答案了 我想在 asp net mvc2 中创建序列号 那么数字应该从 0 to 1000 我尝试如下 var seq Enumerable Range 1 1000 ViewData OrderNo seq In vi
  • 如何设置 Apache mod_rewrite 以重定向除一个子文件夹之外的所有子文件夹

    我刚刚创建了一个新网站 并准备从当前的网络服务器切换到新的网络服务器 当前的网络服务器将更名为 www2 新的网络服务器将被称为 www 我想将所有流量从 www2 重定向到 wwwexcept对于一个目录 我的目录结构如下所示 var w
  • 我们可以只提供@2x 图像吗?

    我们知道我们应该为 iphone ipad 应用程序提供正常尺寸的图像和 2x 尺寸的图像 但为一张图像提供双倍尺寸是一件无聊的事情 我做了一些测试 如果只有 2x图像 如果需要 系统会自动将 2x图像缩小到正常大小 所以在这种情况下 非视
  • Tensorflow - LSTM - “张量”对象不可迭代

    您好 我正在对 lstm rnn 单元使用以下函数 def LSTM RNN X istate weights biases Function returns a tensorflow LSTM RNN artificial neural
  • 以编程方式设置 LinearLayout 的重力

    我已按照说明为 Unity 制作新的 AdMob 插件 广告显示正确 但底部位置有问题 它们显示在屏幕顶部 我已将重力设置为底部 对于 FrameLayout 但横幅广告再次显示在屏幕顶部 我没有任何带有 LinearLayout Fram
  • 具体图和需要更有创意的解决方案

    有向图 V a E b 给出 每个顶点都有特定的权重 我们想要每个顶点 1 a 找到从该顶点可以到达的具有最大权重的顶点 更新 1 Paul 在 O b a log a 中准备了一个很好的答案 但是我 搜索 O a b 算法 如果有 有没有
  • 占位符 CSS 调用问题

    通常我们使用这个想法 不同的类用逗号分隔 测试 test1 但是这里只要我们单独调用类就可以正常工作 为什么会出现这个问题 演示在这里http jsfiddle net 6AR8n http jsfiddle net 6AR8n seper
  • 在 docker 中运行的 Postgres 数据库一直挂起

    我正在使用 postgres docker 映像 在使用 docker 映像中运行的数据库几个月后 现在我得到的行为是 在一段时间后 它们只是挂起 我可以执行bin bash但根本不能用 postgres 做任何事情 命令不会返回 容器也无
  • Alfresco 社区企业功能对比

    我见过这个问题 https stackoverflow com questions 5256425 what is the difference between alfresco community edition and alfresco
  • Flutter 上传列表到 Google Firestore

    我想将我的 flutter 测试应用程序中的列表添加到我的 Google Firestore 这是我的方法 它添加了所有数据 void postToFireStore String mediaUrl String location Stri
  • 交错电子邮件地址数组,避免具有相同域的项目连续

    我正在寻找一种在 C 中对电子邮件地址数组进行排序的有效方法 以避免具有相同域的项目连续 数组内的电子邮件地址已经是不同的 并且全部都是小写 Example 给定一个包含以下条目的数组 email protected cdn cgi l e