C# 如何在C中查找字符数组中的字符索引#

C# 如何在C中查找字符数组中的字符索引#,c#,.net,C#,.net,我想在char数组中找到一个字符的索引。我写了下面的代码,但我想 使用一些库函数/LINQ查找索引,而不是手动循环 通过它。有什么更聪明/简洁的方法可以实现吗 尝试: var index = -1; char[] x = { 'A', 'B', 'C', 'D' , 'E'}; for(int t = 0; t< x.Length; t++) { if (x[t] == 'E') index = t; }

我想在char数组中找到一个字符的索引。我写了下面的代码,但我想 使用一些
库函数/LINQ
查找索引,而不是手动循环 通过它。有什么更聪明/简洁的方法可以实现吗

尝试:

    var index = -1;
    char[] x = { 'A', 'B', 'C', 'D' , 'E'};

    for(int t = 0; t< x.Length; t++)
    {
        if (x[t] == 'E')
            index = t;
    }

    Console.WriteLine($"Index is:  {index}");
var指数=-1;
char[]x={'A','B','C','D','E'};
for(int t=0;t
这是LINQ:

char[] x = { 'A', 'B', 'C', 'D', 'E' };
var index = x.Select((c, i) => new {c, i}).SingleOrDefault(c => c.Equals('D')).i
使用数组类:

var index = Array.FindIndex(x, c=> c.Equals('E'));
这是关于LINQ的:

char[] x = { 'A', 'B', 'C', 'D', 'E' };
var index = x.Select((c, i) => new {c, i}).SingleOrDefault(c => c.Equals('D')).i
使用数组类:

var index = Array.FindIndex(x, c=> c.Equals('E'));

使用System.Linq
FindIndex

char[] x = { 'A', 'B', 'C', 'D' , 'E'};
int index = x.ToList().FindIndex(c => c == 'E');

使用System.Linq
FindIndex

char[] x = { 'A', 'B', 'C', 'D' , 'E'};
int index = x.ToList().FindIndex(c => c == 'E');

对于本例,您可以使用


对于本例,您可以使用


在引擎盖下面,它在阵列中循环。我认为OP需要一个高效的算法来实现这一点。@ZackISSOIR:它不像是一个索引数组。在普通数组中查找项是
O(n)
@ZackISSOIR:如果不在数组中循环,您将如何查找该项。正如罗伯特·哈维所指出的,几乎任何有用的解决方案都会是一个O(n)问题,你是对的@RobertHarvey:)在引擎盖下面,它在阵列中循环。我认为OP需要一个高效的算法来实现这一点。@ZackISSOIR:它不像是一个索引数组。在普通数组中查找项是
O(n)
@ZackISSOIR:如果不在数组中循环,您将如何查找该项。正如罗伯特·哈维指出的,几乎任何有用的解决方案都是O(n)问题您是对的@RobertHarvey:)这要求您枚举集合两次。这是一个解决方案,因为数组没有那么大,所以不应该是问题:)当您的数组超过1000时,您会考虑性能问题:)这要求您枚举集合两次。这是一个解决方案,因为阵列没有那么大,这不应该是一个问题:)当阵列至少超过1000时,您会考虑性能问题:)