c# - 从字符串中获取前 6 个不同的字符

标签 c# linq string distinct

string[] arr = { "abcdefXXX872358", "abcdef200X8XXX58", "abcdef200X872359", "6T1XXXXXXXXXXXX11", "7AbcdeHA30XXX541", "7AbcdeHA30XXX691" };

如何从上面获得不同的数字,其中前 6 个字符必须不同 结果将是

abcdefXXX872358

6T1XXXXXXXXXXXX11

7AbcdeHA30XXX541

我尝试这样的事情

var dist = (from c in arr
            select c).Select(a => a.Substring(0, 5)).Distinct();

这给了我前 5 个字符,但我想要整个字符串

最佳答案

对第一个字符进行分组,并获取每组中的第一个字符串:

IEnumerable<string> firstInGroup =
   arr
   .GroupBy(s => s.Substring(0, 6))
   .Select(g => g.First());

关于c# - 从字符串中获取前 6 个不同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1496516/

相关文章:

c# - 如何在单元测试期间覆盖 IQueryable 的 Contains 方法?

c# - 在 IEnumerable<T> 中选择偶数/奇数元素?

javascript - 如何分割字符串并重复字符?

c# - 静态类/方法停止我的应用程序

c# - 如何让我的产品成为 30 天的试用版?

c# - 等效的 lambda 值是多少?

c# - 嵌套 "from"用扩展方法表示的 LINQ 查询

regex - 如何在机器人框架中使用正则表达式选择子字符串

c - 使用函数在 C 中打印字符串

c# - 如何修复 'file is in use by another process' 错误