c# - 如何在 C# 中的 lambda 表达式中查找数组中元素的索引

标签 c# arrays linq indexing 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:x in (x => x ) indexOf 不是一个选项,因为同一类型可以有多个字符

我怎么知道索引?

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

最佳答案

在 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 扩展方法中获取索引。 正如问题所述,这与如何反转字符串无关。

关于c# - 如何在 C# 中的 lambda 表达式中查找数组中元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57141645/

相关文章:

c# - 如何编写 lambda 以根据对象中的另一个属性获取一个属性

c# - 自定义 AppDomainManager 启动 runtimeHost 失败

javascript - 尝试使用 onclick 函数访问数组

Javascript 数组集合追加

c++ - 在 C++ 构造函数中为结构数组分配存储空间

c# - 使用 `ToArray` 方法复制数组

c# - 如何使用 System.Dynamic.Linq 排序不区分大小写?

c# - .NET 框架库中的 ref 关键字示例

c# - Apache 点燃 2.1 : I get errors when setting the PersistentStoreConfiguration property

c# - 将 Controller 操作呈现为字符串(使用虚拟路径,无操作/ Controller 名称)ASP.NET MVC 3