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中无法做到这一点,那么我愿意接受替代方案.谢谢!
更新:哇,很棒的答案,这么快!按字母顺序或按出现频率排序字符的方法是什么?
你可以这样做:
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)