c# - 如何在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: x
in(x => x )
indexOf
不是一个选项,因为同一类型可以有多个字符
我怎么知道索引?
编辑:我不想知道如何反转字符串,我想知道如何在 lambda 表达式中找到对象的索引
解决方案
在 LINQ 的Select
和Where
扩展方法中,您有一个在 lambda 中接受两个参数的重载,第一个是元素,第二个是索引。
所以在你的情况下,如果你有一个char
数组:
var reversedArray = charArray
.Select((c, i) => new { Element = c, Index = i })
.OrderByDescending(arg => arg.Index)
.Select(arg => arg.Element)
.ToArray();
这只是为了演示如何在 LINQ 扩展方法中获取索引。正如问题所述,这与如何反转字符串无关。
推荐阅读
- html - 使用PHP加载数据后JQuery DataTable清除数据
- javascript - onerror javascript只加载一次?
- sql - 使用 CASE 时按列值分组
- sql - 如何在同一服务器上的两个 Azure 数据库之间将一个表数据复制到另一个表数据
- angular - 获取导航链接的 id
- python - 无法使用请求从网页中获取表格内容
- bash - 如何为所有部分文件名匹配创建符号链接?
- powershell - powershell 和 windows 资源管理器(属性)有不同的计数结果
- python - 如何使用 - 在 Python 中使用切片?
- google-sheets - 我有一个字符串列表,我想为列表中的每个项目调用多行的 INSERTDATA。我怎样才能做到这一点?