LinQ更好的代码?

时间:2016-03-30 19:07:57

标签: c# linq

string test = "asdf";

IEnumerable<char> str = test.ToArray().Distinct();

string[] strArray = str.Select(x => x.ToString()).ToArray();

我需要将其转换为Enumerable,然后我可以将其转换为字符串[]。

您是否知道如何在不使用IEnumerable的情况下基于变量测试将其变为string []的更好的解决方案?

上面的当前代码是绕道而行,我想知道是否可以通过快捷方式使其更好?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

string[] strArry = test.Distinct().Select(x=> x.ToString()).ToArray();

无需在第一行调用ToArray,因为字符串已经是IEnumerable<char>

  

您是否知道如何使其成为基于字符串[]的更好的解决方案   在不使用IEnumerable的变量测试中?

当您使用Distinct时,它会返回IEnumerable<T>,我不确定您通过避免IEnumerable<T>到底意味着什么,但您也可以遍历字符串中的字符并将其转换为字符串,不使用LINQ。