首页 > 解决方案 > 如何在c#中的lambda表达式中查找数组中元素的索引

问题描述

我想创建一个翻转字符串顺序的函数

例子:"hi" => "ih"

这是我到目前为止提出的代码:

public static string Flip(this string Str)
{
  char[] chararray = Str.ToCharArray();
  string output = "";
  chararray. //i dont know what methoud should be used to execute action 
  return output; 
}

问题是,我想在 lambda 表达式中知道当前选择的对象的索引是什么 ex: xin(x => x ) indexOf不是一个选项,因为同一类型可以有多个字符

我怎么知道索引?

编辑:我不想知道如何反转字符串,我想知道如何在 lambda 表达式中找到对象的索引

标签: c#arrayslinqindexinglambda

解决方案


在 LINQ 的SelectWhere扩展方法中,您有一个在 lambda 中接受两个参数的重载,第一个是元素,第二个是索引。

所以在你的情况下,如果你有一个char数组:

var reversedArray = charArray
         .Select((c, i) => new { Element = c, Index = i })
         .OrderByDescending(arg => arg.Index)
         .Select(arg => arg.Element)
         .ToArray();

这只是为了演示如何在 LINQ 扩展方法中获取索引。正如问题所述,这与如何反转字符串无关。


推荐阅读