c# - 跨多个字符串的不同字符

标签 c# .net linq c#-4.0

我正在尝试获取列表中所有字符串的不同字符列表(区分大小写)。

我有一个包含 3 个字符串的列表:

"AABbDDCCRRFF"
"JOJaCK"
"BILLY"

输出应该是这样的(字符顺序不重要):

ABDCRFJOKaILYb

我知道以下是错误的,但无法解决:

            distChars = (from string row in valuesList[c]
                         select row.Distinct()
                         ).Distinct().ToString();

有谁知道如何从每个字符串中返回不同的字符。如果这不能在 LINQ 中完成,那么我愿意接受其他选择。 谢谢!

更新: 哇,很好的答案,这么快!使字符按字母顺序或按出现频率排序的方法是什么?

最佳答案

你可以这样做:

string[] values = new []{"AABbDDCCRRFF","JOJaCK","BILLY"};

var uniqueChars = new string(values.SelectMany(x => x).Distinct().ToArray());

编辑:

正如@Douglas 所建议的,使用 string.Concat() 而不是 new string() 可能会稍微更有效,即:

var uniqueChars = string.Concat(values.SelectMany(x => x).Distinct());

关于c# - 跨多个字符串的不同字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9349262/

相关文章:

c# - 如何扩展一个密封类——需要简单的程序解释和实时使用

c# - 编码(marshal)结构数组

c# - 制作智能感知/自动完成列表时过滤字符串列表的最快方法是什么?

c# - OrderBy 中的 lambda 表达式有什么意义?

visual-studio - Visual Studio 中的 Linq 查询格式

c# - 如何从 C# 中的字符串中删除多个、重复和不必要的标点符号?

c# - 在 .Net Core 中使用 app.config

c# - 在具有单个后端调用的 Controller 方法上使用任务是否明智?

.net - BasicHttpsBinding 和具有传输安全性的 WsHttpBinding 有什么区别?

c# - 使用 Dapper 将 char(8) 映射到字符串属性