C#distinct List <string> by substring

use*_*224 2 c# list distinct

我想从字符串列表中删除重复项.我通过使用distinct来做到这一点,但我想在比较时忽略第一个char.

我已经有一个删除重复项的工作代码,但我的代码也删除了每个字符串的第一个字符.

List<string> mylist = new List<string>();

List<string> newlist = 
  mylist.Select(e => e.Substring(1, e.Length - 1)).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

输入: "1A","1B","2A","3C","4D"

输出:"A","B","C","D"

右输出:"1A","2B","3C","4D"如果删除"1A"或"2A"则无关紧要

我想我非常接近......但任何输入都非常感谢!

一如既往,解决方案应尽可能快地工作;)

Sel*_*enç 5

你可以实现一个IEqualityComparer<string>通过忽略第一个字母来比较你的字符串.然后将其传递给Distinct方法.

myList.Distinct(new MyComparer());
Run Code Online (Sandbox Code Playgroud)

MSDN上还有一个示例,向您展示如何实现和使用自定义比较器Distinct.