Linq反向字符串c#

时间:2015-12-11 00:13:35

标签: c# linq

我想要反转示例中给出的字符串。

 string[] actor = new string[] { "amitabh", "abhishek", "jitendra", "Salman", "Aishwariya" };

 var  resultstring= actor.Reverse().Select(c => c.Reverse()).ToArray();

    foreach(var m in resultstring)
    {
     //how to fetch this?
    }

输出应为

  

ayirawhsia,namlas,ardnetij,kehsihba,hbatima

大部分帖子提到如何在不使用内置reverse()的情况下进行反转。

我只需要使用linq的反向内置函数来获得结果。 我可以像上面的代码片段那样制作它,但无法达到目的。

有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:5)

更改此行:

var resultstring = actor.Reverse().Select(c => c.Reverse()).ToArray();

对此:

var resultstring = actor.Reverse().Select(c => new string(c.Reverse().ToArray())).ToArray();

值得注意的是,当您在字符串上调用Reverse时,当您可能期望IEnumerable<char>时,它实际返回了string。没问题,string构造函数接受char数组,这是我对您的代码的调整。

答案 1 :(得分:1)

为了实现这一点,我将其分解为:

  1. 列举每个单元格。
  2. 反转当前字符串
  3. 将其转换为char数组。
  4. 重载的string constructor接受char array
  5. 迭代并打印每个字符串。
  6. <强>代码:

    var actor = new[] { "amitabh", "abhishek", "jitendra", "Salman", "Aishwariya" };
    
    var resultstring = actor.Reverse().Select(c => new string(c.Reverse().ToArray()));
    foreach (var m in resultstring)
    {
        Console.WriteLine(m);
    }
    

答案 2 :(得分:0)

如果输出是唯一需要的,那就足够了

Console.WriteLine(string.Join(",", actor).Reverse().ToArray());