using System;
using System.Collections.Generic;
public static class Helper
{
public static IEnumerable<T> Distinct2<T>(this IEnumerable<T> e)
var a = new HashSet<T>();
foreach(var it in e)
if(!a.Contains(it))
a.Add(it);
yield return it;
}
public class Program
public static void Main()
var a = new List<int>{1, 2, 1, 3};
a.Distinct2();
foreach(var it in a.Distinct2())
Console.WriteLine(it);