c# - 如何合并列表中的多个连续值?

标签 c# list distinct

是否有删除结果值的函数(即 14, 14 -> 14, 12, 12 -> 12)?

以下列表([12, 14, 14, 12, 12, 14]):

List<string> foo = new List<string> { 12, 14, 14, 12, 12, 14 };

到列表 [12, 14, 12, 14]?

最佳答案

使用 foreach 的方法

public static IEnumerable<T> DistinctByPrevious<T>(List<T> source)
{
    if (source != null && source.Any())
    {
        T prev = source.First();
        yield return prev;
        foreach (T item in source.Skip(1))
        {
            if (!EqualityComparer<T>.Default.Equals(item, prev))
            {
                yield return item;
            }
            prev = item;
        }
    }
}

关于c# - 如何合并列表中的多个连续值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55532269/

相关文章:

mysql - 复杂 SQL 查询(COUNT、DISTINCT、case when、LEFT OUTER JOIN)

c# - 如何升级 Entity Framework 5 Code First 的 DataAnnotations

sql-server - 如果未定义 order by 子句,则不同选择中的第一列是默认顺序

c# linq 遍历数据库中的层次结构数据

java - 按 DESC 计数并列出列表排序计数中的出现次数

python - 如何在 Python 列表中查找元素的索引?

python - 检查 Python 中是否存在切片列表

sql - 如何在 PostgreSQL 中移动整个组?

c# - 自定义SynchronizationContext在unittest中异步设置Thread.CurrentPrincipal

c# - WPF DataTrigger/DataBinding 失败?