有很多方法可以找到在列表中找到重复项,还有任何方法可以找到列表中的连续重复项。

例如

List<string> stringList = new List<string>();
stringList.Add("Name1");
stringList.Add("Name2");
stringList.Add("Name1");


除了什么都找不到

stringList.Add("Name1");
stringList.Add("Name1");
stringList.Add("Name2");


应返回1个条目

这将返回重复项。

 var q = listString.GroupBy(x => x)
         .Select(g => new { Value = g.Key, Count = g.Count() })
         .OrderByDescending(x => x.Count);

最佳答案

为什么不只存储最后一个项目?像这样

public static partial class EnumerableExtensions {
  // Simplest; IEquatable<T> for advanced version
  public static IEnumerable<T> Continuous<T>(this IEnumerable<T> source) {
    if (null == source)
      throw new ArgumentNullException("source");

    T lastItem = default(T);
    Boolean first = true;

    foreach (var item in source) {
      if (first) {
        lastItem = item;
        first = false;
      }
      else if (Object.Equals(item, lastItem))
        yield return item;
      else
        lastItem = item;
    }
  }
}


然后

List<string> stringList = new List<string>() {
  "Name1",
  "Name1",
  "Name2",
};

var contDups = stringList
  .Continuous()
  .ToList();

10-06 09:42