我想从字符串列表中删除重复项.我通过使用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"则无关紧要
我想我非常接近......但任何输入都非常感谢!
一如既往,解决方案应尽可能快地工作;)
你可以实现一个IEqualityComparer<string>通过忽略第一个字母来比较你的字符串.然后将其传递给Distinct方法.
myList.Distinct(new MyComparer());
Run Code Online (Sandbox Code Playgroud)
MSDN上还有一个示例,向您展示如何实现和使用自定义比较器Distinct.