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

Dbdj82

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

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

例子:

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

[email protected]
[email protected]
[email protected]
[email protected]

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

[email protected]    
[email protected]
[email protected]
[email protected]
卢克·莫林

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

List<string> emails = new List<string>();
emails.Add("[email protected]");
emails.Add("[email protected]");
emails.Add("[email protected]");
emails.Add("[email protected]");

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

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片段

干杯

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VSTO Outlook从具有相同域的某人获取电子邮件地址

来自分类Dev

验证电子邮件地址的域

来自分类Dev

Sugar CRM-MYSQL显示具有相同电子邮件地址的联系人

来自分类Dev

msal-具有相同电子邮件地址的个人和工作帐户

来自分类Dev

高亮显示具有相同值的行(电子邮件地址)

来自分类Dev

如何使用AppleScript在OS X联系人中删除具有特定域的所有电子邮件地址?

来自分类Dev

AWS Cognito:处理来自不同身份提供商(Google,Facebook)的同一用户(具有相同电子邮件地址)登录的最佳实践

来自分类Dev

避免ServiceStack使用相同的电子邮件地址创建多个UserAuth

来自分类Dev

连续连接记录(名称)以创建电子邮件地址

来自分类Dev

如何处理:使用相同的电子邮件地址获取所有行,对ID进行操作,然后通过电子邮件发送一次

来自分类Dev

在电子邮件地址jQuery验证上需要域

来自分类Dev

如何按电子邮件地址域订购查询?

来自分类Dev

REGEX以匹配电子邮件地址中的域

来自分类Dev

检查电子邮件地址是否为子域

来自分类Dev

R选择一年中具有> 2个相似开始日期的电子邮件地址

来自分类Dev

该电子邮件地址与site-ContactForm7不属于同一域

来自分类Dev

对同一电子邮件地址使用两个域

来自分类Dev

条带多个客户使用相同的电子邮件地址

来自分类Dev

获取约会项的日历所有者电子邮件地址

来自分类Dev

延迟显示电子邮件地址对电子邮件抓取工具有用吗?

来自分类Dev

如何使用相同的电子邮件地址创建一个新的GitHub帐户?

来自分类Dev

R检查电子邮件地址是否具有多个客户端ID

来自分类Dev

较长的电子邮件地址,具有底部直线响应问题

来自分类Dev

如何避免在liferay中必须具有电子邮件地址的名字和姓氏来导入身份验证用户的必要性

来自分类Dev

如果我在GnuPG中有多个具有相同用户ID /电子邮件地址的OpenPGP密钥,如何区分它们?

来自分类Dev

如果我在GnuPG中有多个具有相同用户ID /电子邮件地址的OpenPGP密钥,如何区分它们?

来自分类Dev

雷鸟-显示所有电子邮件地址

来自分类Dev

MVC远程验证(唯一的电子邮件地址)

来自分类Dev

猫鼬唯一的电子邮件地址验证

Related 相关文章

  1. 1

    VSTO Outlook从具有相同域的某人获取电子邮件地址

  2. 2

    验证电子邮件地址的域

  3. 3

    Sugar CRM-MYSQL显示具有相同电子邮件地址的联系人

  4. 4

    msal-具有相同电子邮件地址的个人和工作帐户

  5. 5

    高亮显示具有相同值的行(电子邮件地址)

  6. 6

    如何使用AppleScript在OS X联系人中删除具有特定域的所有电子邮件地址?

  7. 7

    AWS Cognito:处理来自不同身份提供商(Google,Facebook)的同一用户(具有相同电子邮件地址)登录的最佳实践

  8. 8

    避免ServiceStack使用相同的电子邮件地址创建多个UserAuth

  9. 9

    连续连接记录(名称)以创建电子邮件地址

  10. 10

    如何处理:使用相同的电子邮件地址获取所有行,对ID进行操作,然后通过电子邮件发送一次

  11. 11

    在电子邮件地址jQuery验证上需要域

  12. 12

    如何按电子邮件地址域订购查询?

  13. 13

    REGEX以匹配电子邮件地址中的域

  14. 14

    检查电子邮件地址是否为子域

  15. 15

    R选择一年中具有> 2个相似开始日期的电子邮件地址

  16. 16

    该电子邮件地址与site-ContactForm7不属于同一域

  17. 17

    对同一电子邮件地址使用两个域

  18. 18

    条带多个客户使用相同的电子邮件地址

  19. 19

    获取约会项的日历所有者电子邮件地址

  20. 20

    延迟显示电子邮件地址对电子邮件抓取工具有用吗?

  21. 21

    如何使用相同的电子邮件地址创建一个新的GitHub帐户?

  22. 22

    R检查电子邮件地址是否具有多个客户端ID

  23. 23

    较长的电子邮件地址,具有底部直线响应问题

  24. 24

    如何避免在liferay中必须具有电子邮件地址的名字和姓氏来导入身份验证用户的必要性

  25. 25

    如果我在GnuPG中有多个具有相同用户ID /电子邮件地址的OpenPGP密钥,如何区分它们?

  26. 26

    如果我在GnuPG中有多个具有相同用户ID /电子邮件地址的OpenPGP密钥,如何区分它们?

  27. 27

    雷鸟-显示所有电子邮件地址

  28. 28

    MVC远程验证(唯一的电子邮件地址)

  29. 29

    猫鼬唯一的电子邮件地址验证

热门标签

归档