多个字符串中的不同字符

too*_*oop 3 .net c# linq c#-4.0

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

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

"AABbDDCCRRFF"
"JOJaCK"
"BILLY"
Run Code Online (Sandbox Code Playgroud)

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

ABDCRFJOKaILYb
Run Code Online (Sandbox Code Playgroud)

我知道下面的内容有误,但无法解决:

            distChars = (from string row in valuesList[c]
                         select row.Distinct()
                         ).Distinct().ToString();
Run Code Online (Sandbox Code Playgroud)

有谁知道如何从每个字符串中返回不同的字符.如果在LINQ中无法做到这一点,那么我愿意接受替代方案.谢谢!

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

dig*_*All 5

你可以这样做:

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

var uniqueChars = new string(values.SelectMany(x => x).Distinct().ToArray());
Run Code Online (Sandbox Code Playgroud)

编辑:

正如@Douglas所建议的那样,使用string.Concat()而不是更高效new string(),即:

var uniqueChars = string.Concat(values.SelectMany(x => x).Distinct());
Run Code Online (Sandbox Code Playgroud)