是否有删除结果值的函数(即 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/